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 809610b..f86ec2d 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;