[PATCH 01/11] resolve PXA<->8250 serial device address conflict
From: heikki.krogerus@linux.intel.com (Heikki Krogerus)
Date: 2013-12-02 09:03:13
Also in:
linux-serial, lkml
Hi, On Sun, Dec 01, 2013 at 10:26:14AM +0400, Sergei Ianovich wrote:
quoted hunk ↗ jump to hunk
PXA serial ports have "standard" UART names (ttyS[0-3]), major device number (4) and first minor device number (64) by default. If the system has extra 8250 serial port hardware in addition to onboard PXA serial ports, default settings produce a device allocation conflict. The patch provides a configuration option which can move onboard ports out of the way of 8250_core by assigning a different (204) major number and corresponding device names (ttySA[0-3]). Signed-off-by: Sergei Ianovich <redacted> --- drivers/tty/serial/Kconfig | 19 +++++++++++++++++++ drivers/tty/serial/pxa.c | 22 ++++++++++++++++++---- 2 files changed, 37 insertions(+), 4 deletions(-)diff --git a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c
<snip>
quoted hunk ↗ jump to hunk
--- a/drivers/tty/serial/pxa.c +++ b/drivers/tty/serial/pxa.c@@ -593,6 +593,20 @@ serial_pxa_type(struct uart_port *port) static struct uart_pxa_port *serial_pxa_ports[4]; static struct uart_driver serial_pxa_reg; +#ifndef CONFIG_SERIAL_PXA_AS_TTYSA + +#define PXA_TTY_NAME "ttyS" +#define PXA_TTY_MAJOR TTY_MAJOR +#define PXA_TTY_MINOR 64 + +#else + +#define PXA_TTY_NAME "ttySA" +#define PXA_TTY_MAJOR 204 +#define PXA_TTY_MINOR 5 + +#endif + #ifdef CONFIG_SERIAL_PXA_CONSOLE #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)@@ -751,7 +765,7 @@ serial_pxa_console_setup(struct console *co, char *options) } static struct console serial_pxa_console = { - .name = "ttyS", + .name = PXA_TTY_NAME, .write = serial_pxa_console_write, .device = uart_console_device, .setup = serial_pxa_console_setup,@@ -792,9 +806,9 @@ static struct uart_ops serial_pxa_pops = { static struct uart_driver serial_pxa_reg = { .owner = THIS_MODULE, .driver_name = "PXA serial", - .dev_name = "ttyS", - .major = TTY_MAJOR, - .minor = 64, + .dev_name = PXA_TTY_NAME, + .major = PXA_TTY_MAJOR, + .minor = PXA_TTY_MINOR, .nr = 4, .cons = PXA_CONSOLE, };
If drivers/tty/serial/pxa.c was converted to an other probe driver for the 8250, this would not be an issue. Br, -- heikki