summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2015-02-24 14:25:00 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-03-26 16:10:11 +0100
commit959801fef94b7ee66ea2c713229637a7e1770890 (patch)
treec9b020e008b67662c065aba921044932b9d9071c
parentd3157b2ca59ceb9ad1b72cad09535a343f315667 (diff)
downloadop-kernel-dev-959801fef94b7ee66ea2c713229637a7e1770890.zip
op-kernel-dev-959801fef94b7ee66ea2c713229637a7e1770890.tar.gz
serial: core: Add minor field to uart_port
UART drivers that share ttyS namespace cannot trivially compute the ttyS index from the port->line value since the minor_start may be offset from minor 64. Further, to do so requires a pointer to the uart driver since there is no back pointer from uart_port to uart_driver. Rather than have UART drivers computing the minor value by themselves, encapsulate within the serial core at port registration time. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/serial_core.c1
-rw-r--r--include/linux/serial_core.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 8379e3f..a373eff 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -2682,6 +2682,7 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport)
state->pm_state = UART_PM_STATE_UNDEFINED;
uport->cons = drv->cons;
+ uport->minor = drv->tty_driver->minor_start + uport->line;
/*
* If this port is a console, then the spinlock is already
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index b0148e7..980170e 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -235,6 +235,7 @@ struct uart_port {
const struct uart_ops *ops;
unsigned int custom_divisor;
unsigned int line; /* port index */
+ unsigned int minor;
resource_size_t mapbase; /* for ioremap */
struct device *dev; /* parent device */
unsigned char hub6; /* this should be in the 8250 driver */
OpenPOWER on IntegriCloud