Re: [PATCH v7 1/7] printk: Save console options for add_preferred_console_match()

Andy Shevchenko
2024-03-27T13:36:16Z

On Wed, Mar 27, 2024 at 12:59:35PM +0200, Tony Lindgren wrote:
> Driver subsystems may need to translate the preferred console name to the
> character device name used. We already do some of this in console_setup()
> with a few hardcoded names, but that does not scale well.
>
> The console options are parsed early in console_setup(), and the consoles
> are added with __add_preferred_console(). At this point we don't know much
> about the character device names and device drivers getting probed.
>
> To allow driver subsystems to set up a preferred console, let's save the
> kernel command line console options. To add a preferred console from a
> driver subsystem with optional character device name translation, let's
> add a new function add_preferred_console_match().
>
> This allows the serial core layer to support console=DEVNAME:0.0 style
> hardware based addressing in addition to the current console=ttyS0 style
> naming. And we can start moving console_setup() character device parsing
> to the driver subsystem specific code.
>
> We use a separate array from the console_cmdline array as the character
> device name and index may be unknown at the console_setup() time. And
> eventually there's no need to call __add_preferred_console() until the
> subsystem is ready to handle the console.
>
> Adding the console name in addition to the character device name, and a
> flag for an added console, could be added to the struct console_cmdline.
> And the console_cmdline array handling could be modified accordingly. But
> that complicates things compared saving the console options, and then
> adding the consoles when the subsystems handling the consoles are ready.
>
> Co-developed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

This requires my SoB as well.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Signed-off-by: Tony Lindgren <tony@atomide.com>

--
With Best Regards,
Andy Shevchenko