sc16is7xx: Set iobase to device index
authorDaniel Mack <daniel@zonque.org>
Tue, 1 Sep 2020 12:03:29 +0000 (14:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Sep 2020 15:14:47 +0000 (17:14 +0200)
Some derivates of sc16is7xx devices expose more than one tty device to
userspace. If multiple such devices exist in a system, userspace
currently has no clean way to infer which tty maps to which physical
line.

Set the .iobase value to the relative index within the device to allow
infering the order through sysfs.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Link: https://lore.kernel.org/r/20200901120329.4176302-1-daniel@zonque.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sc16is7xx.c

index 809610b37c7139bff476a76677e0a2665a4a3461..f86ec2d2635b7c76121914c12b40d564711742da 100644 (file)
@@ -1271,6 +1271,7 @@ static int sc16is7xx_probe(struct device *dev,
                s->p[i].port.type       = PORT_SC16IS7XX;
                s->p[i].port.fifosize   = SC16IS7XX_FIFO_SIZE;
                s->p[i].port.flags      = UPF_FIXED_TYPE | UPF_LOW_LATENCY;
+               s->p[i].port.iobase     = i;
                s->p[i].port.iotype     = UPIO_PORT;
                s->p[i].port.uartclk    = freq;
                s->p[i].port.rs485_config = sc16is7xx_config_rs485;