tty: pl011: use "qdf2400_e44" as the earlycon name for QDF2400 E44
PATCH 1/1 tty: pl011: use "qdf2400_e44" as the earlycon name for QDF2400 E44
Define a new early console name for Qualcomm Datacenter Technologies QDF2400 SOCs affected by erratum 44, instead of piggy-backing on "pl011". Previously, to enable traditional (non-SPCR) earlycon, the documentation said to specify "earlycon=pl011,<address>,qdf2400_e44", but the code was broken and this didn't actually work.
So instead, the method for specifying the E44 work-around with traditional earlycon is "earlycon=qdf2400_e44,<address>". Both methods of earlycon are now enabled with the same function.
--- drivers/tty/serial/amba-pl011.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-)
drivers/tty/serial/amba-pl011.c +23 -8
@@ -2470,19 +2470,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
Signature · 3 lines
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
PATCH 1/1 tty: pl011: use "qdf2400_e44" as the earlycon name for QDF2400 E44
Hi Timur,
Quoted 6 lines · Timur Tabi
Define a new early console name for Qualcomm Datacenter Technologies QDF2400 SOCs affected by erratum 44, instead of piggy-backing on "pl011". Previously, to enable traditional (non-SPCR) earlycon, the documentation said to specify "earlycon=pl011,<address>,qdf2400_e44", but the code was broken and this didn't actually work.
Quoted 6 lines
So instead, the method for specifying the E44 work-around with traditional earlycon is "earlycon=qdf2400_e44,<address>". Both methods of earlycon are now enabled with the same function.
Fixes e53e597fd4c4 ("tty: pl011: fix earlycon work-around for QDF2400 erratum 44")Signed-off-by Timur Tabi <[email protected]>
Quoted 51 lines
--- drivers/tty/serial/amba-pl011.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-)drivers/tty/serial/amba-pl011.c +23
-8@@ -2470,19 +2470,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
Signature · 3 lines
Shanker Donthineni Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.