From mboxrd@z Thu Jan 1 00:00:00 1970 From: heikki.krogerus@linux.intel.com (Heikki Krogerus) Date: Mon, 2 Dec 2013 11:02:53 +0200 Subject: [PATCH 01/11] resolve PXA<->8250 serial device address conflict In-Reply-To: <1385879185-22455-2-git-send-email-ynvich@gmail.com> References: <1385879185-22455-1-git-send-email-ynvich@gmail.com> <1385879185-22455-2-git-send-email-ynvich@gmail.com> Message-ID: <20131202090253.GE3942@xps8300> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, On Sun, Dec 01, 2013 at 10:26:14AM +0400, Sergei Ianovich wrote: > 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 > --- > 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 > --- 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