These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / tty / serial / earlycon.c
index 6dc471e..b5b2f2b 100644 (file)
@@ -72,6 +72,7 @@ static int __init parse_options(struct earlycon_device *device, char *options)
 
        switch (port->iotype) {
        case UPIO_MEM32:
+       case UPIO_MEM32BE:
                port->regshift = 2;     /* fall-through */
        case UPIO_MEM:
                port->mapbase = addr;
@@ -90,9 +91,11 @@ static int __init parse_options(struct earlycon_device *device, char *options)
                strlcpy(device->options, options, length);
        }
 
-       if (port->iotype == UPIO_MEM || port->iotype == UPIO_MEM32)
+       if (port->iotype == UPIO_MEM || port->iotype == UPIO_MEM32 ||
+           port->iotype == UPIO_MEM32BE)
                pr_info("Early serial console at MMIO%s 0x%llx (options '%s')\n",
-                       (port->iotype == UPIO_MEM32) ? "32" : "",
+                       (port->iotype == UPIO_MEM) ? "" :
+                       (port->iotype == UPIO_MEM32) ? "32" : "32be",
                        (unsigned long long)port->mapbase,
                        device->options);
        else
@@ -112,6 +115,7 @@ static int __init register_earlycon(char *buf, const struct earlycon_id *match)
        if (buf && !parse_options(&early_console_dev, buf))
                buf = NULL;
 
+       spin_lock_init(&port->lock);
        port->uartclk = BASE_BAUD * 16;
        if (port->mapbase)
                port->membase = earlycon_map(port->mapbase, 64);
@@ -133,7 +137,7 @@ static int __init register_earlycon(char *buf, const struct earlycon_id *match)
  *
  *     Registers the earlycon console matching the earlycon specified
  *     in the param string @buf. Acceptable param strings are of the form
- *        <name>,io|mmio|mmio32,<addr>,<options>
+ *        <name>,io|mmio|mmio32|mmio32be,<addr>,<options>
  *        <name>,0x<addr>,<options>
  *        <name>,<options>
  *        <name>
@@ -199,6 +203,7 @@ int __init of_setup_earlycon(unsigned long addr,
        int err;
        struct uart_port *port = &early_console_dev.port;
 
+       spin_lock_init(&port->lock);
        port->iotype = UPIO_MEM;
        port->mapbase = addr;
        port->uartclk = BASE_BAUD * 16;