Commit f64d74a5 authored by Johan Hovold's avatar Johan Hovold
Browse files

USB: serial: stop reporting legacy UART types



The TIOCGSERIAL ioctl can be used to set and retrieve the UART type for
legacy UARTs, but some USB serial drivers have been reporting back
random types in order to "make user-space happy".

Some applications have historically expected TIOCGSERIAL to be
implemented, but judging from the Debian sources, the port type not
being PORT_UNKNOWN is only used to check for the existence of legacy
serial ports (ttySn).

Drivers like ftdi_sio have been using PORT_UNKNOWN for twenty years (and
option for 10 years) without anyone complaining so let's stop reporting
back anything else.

In the unlikely event that this do cause problems, this should be fixed
tree-wide anyway (e.g. for all USB serial drivers and also CDC-ACM).

Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
parent 01fd45f6
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -385,12 +385,6 @@ static int ark3116_open(struct tty_struct *tty, struct usb_serial_port *port)
	return result;
}

static void ark3116_get_serial_info(struct tty_struct *tty,
			struct serial_struct *ss)
{
	ss->type = PORT_16654;
}

static int ark3116_tiocmget(struct tty_struct *tty)
{
	struct usb_serial_port *port = tty->driver_data;
@@ -627,7 +621,6 @@ static struct usb_serial_driver ark3116_device = {
	.port_probe =		ark3116_port_probe,
	.port_remove =		ark3116_port_remove,
	.set_termios =		ark3116_set_termios,
	.get_serial =		ark3116_get_serial_info,
	.tiocmget =		ark3116_tiocmget,
	.tiocmset =		ark3116_tiocmset,
	.tiocmiwait =		usb_serial_generic_tiocmiwait,
+0 −1
Original line number Diff line number Diff line
@@ -825,7 +825,6 @@ static void f81232_get_serial(struct tty_struct *tty, struct serial_struct *ss)
	struct usb_serial_port *port = tty->driver_data;
	struct f81232_private *priv = usb_get_serial_port_data(port);

	ss->type = PORT_16550A;
	ss->baud_base = priv->baud_base;
}

+0 −1
Original line number Diff line number Diff line
@@ -1147,7 +1147,6 @@ static void f81534_get_serial_info(struct tty_struct *tty, struct serial_struct

	port_priv = usb_get_serial_port_data(port);

	ss->type = PORT_16550A;
	ss->baud_base = port_priv->baud_base;
}

+0 −10
Original line number Diff line number Diff line
@@ -1594,12 +1594,6 @@ static int edge_tiocmget(struct tty_struct *tty)
	return result;
}

static void get_serial_info(struct tty_struct *tty, struct serial_struct *ss)
{
	ss->type = PORT_16550A;
}


/*****************************************************************************
 * SerialIoctl
 *	this function handles any ioctl calls to the driver
@@ -3061,7 +3055,6 @@ static struct usb_serial_driver edgeport_2port_device = {
	.set_termios		= edge_set_termios,
	.tiocmget		= edge_tiocmget,
	.tiocmset		= edge_tiocmset,
	.get_serial		= get_serial_info,
	.tiocmiwait		= usb_serial_generic_tiocmiwait,
	.get_icount		= usb_serial_generic_get_icount,
	.write			= edge_write,
@@ -3097,7 +3090,6 @@ static struct usb_serial_driver edgeport_4port_device = {
	.set_termios		= edge_set_termios,
	.tiocmget		= edge_tiocmget,
	.tiocmset		= edge_tiocmset,
	.get_serial		= get_serial_info,
	.tiocmiwait		= usb_serial_generic_tiocmiwait,
	.get_icount		= usb_serial_generic_get_icount,
	.write			= edge_write,
@@ -3133,7 +3125,6 @@ static struct usb_serial_driver edgeport_8port_device = {
	.set_termios		= edge_set_termios,
	.tiocmget		= edge_tiocmget,
	.tiocmset		= edge_tiocmset,
	.get_serial		= get_serial_info,
	.tiocmiwait		= usb_serial_generic_tiocmiwait,
	.get_icount		= usb_serial_generic_get_icount,
	.write			= edge_write,
@@ -3169,7 +3160,6 @@ static struct usb_serial_driver epic_device = {
	.set_termios		= edge_set_termios,
	.tiocmget		= edge_tiocmget,
	.tiocmset		= edge_tiocmset,
	.get_serial		= get_serial_info,
	.tiocmiwait		= usb_serial_generic_tiocmiwait,
	.get_icount		= usb_serial_generic_get_icount,
	.write			= edge_write,
+0 −7
Original line number Diff line number Diff line
@@ -2433,11 +2433,6 @@ static int edge_tiocmget(struct tty_struct *tty)
	return result;
}

static void get_serial_info(struct tty_struct *tty, struct serial_struct *ss)
{
	ss->type = PORT_16550A;
}

static void edge_break(struct tty_struct *tty, int break_state)
{
	struct usb_serial_port *port = tty->driver_data;
@@ -2696,7 +2691,6 @@ static struct usb_serial_driver edgeport_1port_device = {
	.release		= edge_release,
	.port_probe		= edge_port_probe,
	.port_remove		= edge_port_remove,
	.get_serial		= get_serial_info,
	.set_termios		= edge_set_termios,
	.tiocmget		= edge_tiocmget,
	.tiocmset		= edge_tiocmset,
@@ -2735,7 +2729,6 @@ static struct usb_serial_driver edgeport_2port_device = {
	.release		= edge_release,
	.port_probe		= edge_port_probe,
	.port_remove		= edge_port_remove,
	.get_serial		= get_serial_info,
	.set_termios		= edge_set_termios,
	.tiocmget		= edge_tiocmget,
	.tiocmset		= edge_tiocmset,
Loading