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@linux.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 v6 6/6] serial: 8250: Add preferred console in serial8250_isa_init_ports()
Date: Tue, 13 Feb 2024 10:45:13 +0200 [thread overview]
Message-ID: <20240213084545.40617-7-tony@atomide.com> (raw)
In-Reply-To: <20240213084545.40617-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()
to drop a dependency to setup_console() handling the ttyS related
quirks. Otherwise when console_setup() handles the ttyS related
options, console gets enabled only at driver probe time.
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 | 5 +++++
drivers/tty/serial/serial_base.h | 8 ++++++++
drivers/tty/serial/serial_base_bus.c | 21 +++++++++++++++++++++
3 files changed, 34 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>
@@ -41,6 +42,8 @@
#include <asm/irq.h>
+#include "../serial_base.h" /* For serial_base_add_isa_preferred_console() */
+
#include "8250.h"
/*
@@ -563,6 +566,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);
+
+ serial_base_add_isa_preferred_console(serial8250_reg.dev_name, i);
}
}
diff --git a/drivers/tty/serial/serial_base.h b/drivers/tty/serial/serial_base.h
--- a/drivers/tty/serial/serial_base.h
+++ b/drivers/tty/serial/serial_base.h
@@ -51,6 +51,8 @@ void serial_core_unregister_port(struct uart_driver *drv, struct uart_port *port
int serial_base_add_preferred_console(struct uart_driver *drv,
struct uart_port *port);
+int serial_base_add_isa_preferred_console(const char *name, int idx);
+
#else
static inline
@@ -60,4 +62,10 @@ int serial_base_add_preferred_console(struct uart_driver *drv,
return 0;
}
+static inline
+int serial_base_add_isa_preferred_console(const char *name, int idx)
+{
+ return 0;
+}
+
#endif
diff --git a/drivers/tty/serial/serial_base_bus.c b/drivers/tty/serial/serial_base_bus.c
--- a/drivers/tty/serial/serial_base_bus.c
+++ b/drivers/tty/serial/serial_base_bus.c
@@ -317,6 +317,27 @@ int serial_base_add_preferred_console(struct uart_driver *drv,
return serial_base_add_one_prefcon(port_match, drv->dev_name, port->line);
}
+#ifdef CONFIG_SERIAL_8250_CONSOLE
+
+/*
+ * Early ISA ports initialize the console before there is no struct device.
+ * This should be only called from serial8250_isa_init_preferred_console(),
+ * other callers are likely wrong and should rely on earlycon instead.
+ */
+int serial_base_add_isa_preferred_console(const char *name, int idx)
+{
+ return serial_base_add_prefcon(name, idx);
+}
+
+#else
+
+int serial_base_add_isa_preferred_console(const char *name, int idx)
+{
+ return 0;
+}
+
+#endif
+
#endif
static int serial_base_init(void)
--
2.43.1
prev parent reply other threads:[~2024-02-13 8:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-13 8:45 [PATCH v6 0/6] Add support for DEVNAME:0.0 style hardware based addressing Tony Lindgren
2024-02-13 8:45 ` [PATCH v6 1/6] printk: Save console options for add_preferred_console_match() Tony Lindgren
2024-02-13 16:41 ` Andy Shevchenko
2024-02-14 7:59 ` Tony Lindgren
2024-02-14 8:49 ` Tony Lindgren
2024-02-14 8:51 ` Tony Lindgren
2024-02-13 8:45 ` [PATCH v6 2/6] printk: Don't try to parse DEVNAME:0.0 console options Tony Lindgren
2024-02-13 8:45 ` [PATCH v6 3/6] printk: Flag register_console() if console is set on command line Tony Lindgren
2024-02-13 8:45 ` [PATCH v6 4/6] serial: core: Add support for DEVNAME:0.0 style naming for kernel console Tony Lindgren
2024-02-13 15:53 ` Andy Shevchenko
2024-02-14 6:02 ` Tony Lindgren
2024-02-13 23:58 ` Sebastian Reichel
2024-02-14 7:08 ` Tony Lindgren
2024-02-14 9:00 ` Dan Carpenter
2024-02-14 9:03 ` Tony Lindgren
2024-02-13 8:45 ` [PATCH v6 5/6] serial: core: Handle serial console options Tony Lindgren
2024-02-13 15:56 ` Andy Shevchenko
2024-02-13 8:45 ` Tony Lindgren [this message]
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=20240213084545.40617-7-tony@atomide.com \
--to=tony@atomide.com \
--cc=andriy.shevchenko@linux.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.