USB: serial: ti_usb_3410_5052: fix TIOCGSERIAL implementation
authorJohan Hovold <johan@kernel.org>
Wed, 7 Apr 2021 10:39:14 +0000 (12:39 +0200)
committerJohan Hovold <johan@kernel.org>
Thu, 8 Apr 2021 07:45:58 +0000 (09:45 +0200)
TIOCSSERIAL is a horrid, underspecified, legacy interface which for most
serial devices is only useful for setting the close_delay and
closing_wait parameters.

The port parameter is used to set the I/O port and does not make any
sense to use for USB serial devices.

The xmit_fifo_size parameter could be used to set the hardware transmit
fifo size of a legacy UART when it could not be detected, but the
interface is limited to eight bits and should be left unset when not
used.

The close_delay and closing_wait parameters returned by TIOCGSERIAL are
specified in centiseconds. The driver does not yet support changing
close_delay, but let's report back the default value actually used (0.5
seconds).

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/ti_usb_3410_5052.c

index 7252b0c..4b497c1 100644 (file)
@@ -1406,10 +1406,10 @@ static int ti_get_serial_info(struct tty_struct *tty,
 
        ss->type = PORT_16550A;
        ss->line = port->minor;
-       ss->port = port->port_number;
-       ss->xmit_fifo_size = kfifo_size(&port->write_fifo);
        ss->baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
+       ss->close_delay = 50;
        ss->closing_wait = cwait;
+
        return 0;
 }