From: Tony Lindgren <tony@atomide.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jirislaby@kernel.org>, Petr Mladek <pmladek@suse.com>,
Steven Rostedt <rostedt@goodmis.org>,
John Ogness <john.ogness@linutronix.de>,
Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: "David S . Miller" <davem@davemloft.net>,
"Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Dhruva Gole" <d-gole@ti.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Johan Hovold" <johan@kernel.org>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org
Subject: [PATCH v4 4/4] serial: 8250: Add preferred console in serial8250_isa_init_ports()
Date: Tue, 5 Dec 2023 09:32:36 +0200 [thread overview]
Message-ID: <20231205073255.20562-5-tony@atomide.com> (raw)
In-Reply-To: <20231205073255.20562-1-tony@atomide.com>
Prepare 8250 isa ports to drop kernel command line serial console
handling from console_setup().
We need to set the preferred console in serial8250_isa_init_ports().
Otherwise the console gets initialized only later on when the hardware
specific driver takes over, and console_setup() is no longer handling
the ttyS related quirks.
Note that this mostly affects x86 as this happens based on define
SERIAL_PORT_DFNS.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/tty/serial/8250/8250_core.c | 32 +++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -15,6 +15,7 @@
*/
#include <linux/acpi.h>
+#include <linux/cleanup.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/ioport.h>
@@ -517,6 +518,35 @@ static struct uart_8250_port *serial8250_setup_port(int index)
return up;
}
+#ifdef CONFIG_SERIAL_8250_CONSOLE
+
+/*
+ * There is no struct device at this point, so let's not try to use
+ * serial_base_add_preferred_console().
+ */
+static void __init serial8250_isa_init_preferred_console(int idx)
+{
+ const char *name __free(kfree);
+ int ret;
+
+ name = kasprintf(GFP_KERNEL, "%s%i", serial8250_reg.dev_name, idx);
+ ret = add_preferred_console_match(name, serial8250_reg.dev_name, idx);
+ if (!ret || ret == -ENOENT)
+ return;
+
+ pr_err("Could not add preferred console for %s idx %i\n",
+ serial8250_reg.dev_name, idx);
+}
+
+#else
+
+static inline void serial8250_isa_init_preferred_console(struct uart_port *port,
+ int idx)
+{
+}
+
+#endif
+
static void __init serial8250_isa_init_ports(void)
{
struct uart_8250_port *up;
@@ -563,6 +593,8 @@ static void __init serial8250_isa_init_ports(void)
port->irqflags |= irqflag;
if (serial8250_isa_config != NULL)
serial8250_isa_config(i, &up->port, &up->capabilities);
+
+ serial8250_isa_init_preferred_console(i);
}
}
--
2.43.0
next prev parent reply other threads:[~2023-12-05 7:36 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-05 7:32 [PATCH v4 0/4] Add support for DEVNAME:0.0 style hardware based addressing Tony Lindgren
2023-12-05 7:32 ` [PATCH v4 1/4] printk: Save console options for add_preferred_console_match() Tony Lindgren
2023-12-05 7:32 ` [PATCH v4 2/4] serial: core: Add support for DEVNAME:0.0 style naming for kernel console Tony Lindgren
2023-12-05 7:32 ` [PATCH v4 3/4] serial: core: Handle serial console options Tony Lindgren
2023-12-05 16:06 ` Andy Shevchenko
2023-12-05 7:32 ` Tony Lindgren [this message]
2023-12-05 16:08 ` [PATCH v4 4/4] serial: 8250: Add preferred console in serial8250_isa_init_ports() Andy Shevchenko
2023-12-05 16:10 ` Andy Shevchenko
2023-12-07 7:23 ` Tony Lindgren
2023-12-05 18:07 ` kernel test robot
2023-12-05 18:29 ` kernel test robot
2023-12-05 7:45 ` [PATCH v4 0/4] Add support for DEVNAME:0.0 style hardware based addressing Tony Lindgren
2023-12-08 8:28 ` Tony Lindgren
2023-12-18 6:38 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231205073255.20562-5-tony@atomide.com \
--to=tony@atomide.com \
--cc=andriy.shevchenko@intel.com \
--cc=bigeasy@linutronix.de \
--cc=d-gole@ti.com \
--cc=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=johan@kernel.org \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.