]> www.infradead.org Git - users/jedix/linux-maple.git/commit
init: Don't proxy `console=` to earlycon
authorRaul E Rangel <rrangel@chromium.org>
Wed, 11 Sep 2024 18:35:14 +0000 (12:35 -0600)
committerPetr Mladek <pmladek@suse.com>
Tue, 1 Oct 2024 12:11:39 +0000 (14:11 +0200)
commit17b655759e83fd5e28931a0ece96fa9c2ab718e7
treec56823f042acb40abefba5e56001251da7b39bce
parentc903327d3295b135eb8c81ebe0b68c1837718eb8
init: Don't proxy `console=` to earlycon

Today we are proxying the `console=` command line args to the
`param_setup_earlycon()` handler. This is done because the following are
equivalent:

    console=uart[8250],mmio,<addr>[,options]
    earlycon=uart[8250],mmio,<addr>[,options]

Both invocations enable an early `bootconsole`. `console=uartXXXX` is
just an alias for `earlycon=uartXXXX`.

In addition, when `earlycon=` (empty value) or just `earlycon`
(no value) is specified on the command line, we enable the earlycon
`bootconsole` specified by the SPCR table or the DT.

The problem arises when `console=` (empty value) is specified on the
command line. It's intention is to disable the `console`, but what
happens instead is that the SPRC/DT console gets enabled.

This happens because we are proxying the `console=` (empty value)
parameter to the `earlycon` handler. The `earlycon` handler then sees
that the parameter value is empty, so it enables the SPCR/DT
`bootconsole`.

This change makes it so that the `console` or `console=` parameters no
longer enable the SPCR/DT `bootconsole`. I also cleans up the hack in
`main.c` that would forward the `console` parameter to the `earlycon`
handler.

Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Tested-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20240911123507.v2.1.Id08823b2f848237ae90ce5c5fa7e027e97c33ad3@changeid
Signed-off-by: Petr Mladek <pmladek@suse.com>
drivers/tty/serial/earlycon.c
init/main.c