Re: [PATCH v2] console: Don't prefer first registered if DT specifies stdout-path

From: Andrew Morton
Date: Tue Aug 09 2016 - 17:57:35 EST


On Tue, 9 Aug 2016 16:19:37 +0100 Paul Burton <paul.burton@xxxxxxxxxx> wrote:

> If a device tree specifies a preferred device for kernel console output
> via the stdout-path or linux,stdout-path chosen node properties or the
> stdout alias then the kernel ought to honor it & output the kernel
> console to that device. As it stands, this isn't the case. Whilst we
> parse the stdout-path properties & set an of_stdout variable from
> of_alias_scan(), and use that from of_console_check() to determine
> whether to add a console device as a preferred console whilst
> registering it, we also prefer the first registered console if no other
> has been selected at the time of its registration.
>
> This means that if a console other than the one the device tree selects
> via stdout-path is registered first, we will switch to using it & when
> the stdout-path console is later registered the call to
> add_preferred_console() via of_console_check() is too late to do
> anything useful. In practice this seems to mean that we switch to the
> dummy console device fairly early & see no further console output:
>
> Console: colour dummy device 80x25
> console [tty0] enabled
> bootconsole [ns16550a0] disabled
>
> Fix this by not automatically preferring the first registered console if
> one is specified by the device tree. This allows consoles to be
> registered but not enabled, and once the driver for the console selected
> by stdout-path calls of_console_check() the driver will be added to the
> list of preferred consoles before any other console has been enabled.
> When that console is then registered via register_console() it will be
> enabled as expected.

Looks reasonable. Could you please do `grep -r stdout-path
Documentation' and check that everything therein is complete, accurate
and necessary?