Commit 959801fe authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman

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: default avatarPeter Hurley <peter@hurleysoftware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d3157b2c
...@@ -2682,6 +2682,7 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport) ...@@ -2682,6 +2682,7 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport)
state->pm_state = UART_PM_STATE_UNDEFINED; state->pm_state = UART_PM_STATE_UNDEFINED;
uport->cons = drv->cons; uport->cons = drv->cons;
uport->minor = drv->tty_driver->minor_start + uport->line;
/* /*
* If this port is a console, then the spinlock is already * If this port is a console, then the spinlock is already
......
...@@ -235,6 +235,7 @@ struct uart_port { ...@@ -235,6 +235,7 @@ struct uart_port {
const struct uart_ops *ops; const struct uart_ops *ops;
unsigned int custom_divisor; unsigned int custom_divisor;
unsigned int line; /* port index */ unsigned int line; /* port index */
unsigned int minor;
resource_size_t mapbase; /* for ioremap */ resource_size_t mapbase; /* for ioremap */
struct device *dev; /* parent device */ struct device *dev; /* parent device */
unsigned char hub6; /* this should be in the 8250 driver */ unsigned char hub6; /* this should be in the 8250 driver */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment