|
@@ -2475,19 +2475,34 @@ static int __init pl011_early_console_setup(struct earlycon_device *device,
|
|
|
if (!device->port.membase)
|
|
|
return -ENODEV;
|
|
|
|
|
|
- /* On QDF2400 SOCs affected by Erratum 44, the "qdf2400_e44" must
|
|
|
- * also be specified, e.g. "earlycon=pl011,<address>,qdf2400_e44".
|
|
|
- */
|
|
|
- if (!strcmp(device->options, "qdf2400_e44"))
|
|
|
- device->con->write = qdf2400_e44_early_write;
|
|
|
- else
|
|
|
- device->con->write = pl011_early_write;
|
|
|
+ device->con->write = pl011_early_write;
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
OF_EARLYCON_DECLARE(pl011, "arm,pl011", pl011_early_console_setup);
|
|
|
OF_EARLYCON_DECLARE(pl011, "arm,sbsa-uart", pl011_early_console_setup);
|
|
|
-EARLYCON_DECLARE(qdf2400_e44, pl011_early_console_setup);
|
|
|
+
|
|
|
+/*
|
|
|
+ * On Qualcomm Datacenter Technologies QDF2400 SOCs affected by
|
|
|
+ * Erratum 44, traditional earlycon can be enabled by specifying
|
|
|
+ * "earlycon=qdf2400_e44,<address>". Any options are ignored.
|
|
|
+ *
|
|
|
+ * Alternatively, you can just specify "earlycon", and the early console
|
|
|
+ * will be enabled with the information from the SPCR table. In this
|
|
|
+ * case, the SPCR code will detect the need for the E44 work-around,
|
|
|
+ * and set the console name to "qdf2400_e44".
|
|
|
+ */
|
|
|
+static int __init
|
|
|
+qdf2400_e44_early_console_setup(struct earlycon_device *device,
|
|
|
+ const char *opt)
|
|
|
+{
|
|
|
+ if (!device->port.membase)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ device->con->write = qdf2400_e44_early_write;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+EARLYCON_DECLARE(qdf2400_e44, qdf2400_e44_early_console_setup);
|
|
|
|
|
|
#else
|
|
|
#define AMBA_CONSOLE NULL
|