Commit c8f97e77 authored by Al Viro's avatar Al Viro
Browse files

f81534: switch to ->get_serial()

parent 056abede
Loading
Loading
Loading
Loading
+8 −30
Original line number Diff line number Diff line
@@ -1139,43 +1139,21 @@ static void f81534_close(struct usb_serial_port *port)
	mutex_unlock(&serial_priv->urb_mutex);
}

static int f81534_get_serial_info(struct usb_serial_port *port,
				  struct serial_struct __user *retinfo)
static int f81534_get_serial_info(struct tty_struct *tty,
				  struct serial_struct *ss)
{
	struct usb_serial_port *port = tty->driver_data;
	struct f81534_port_private *port_priv;
	struct serial_struct tmp;

	port_priv = usb_get_serial_port_data(port);

	memset(&tmp, 0, sizeof(tmp));

	tmp.type = PORT_16550A;
	tmp.port = port->port_number;
	tmp.line = port->minor;
	tmp.baud_base = port_priv->baud_base;

	if (copy_to_user(retinfo, &tmp, sizeof(*retinfo)))
		return -EFAULT;

	ss->type = PORT_16550A;
	ss->port = port->port_number;
	ss->line = port->minor;
	ss->baud_base = port_priv->baud_base;
	return 0;
}

static int f81534_ioctl(struct tty_struct *tty, unsigned int cmd,
			unsigned long arg)
{
	struct usb_serial_port *port = tty->driver_data;
	struct serial_struct __user *buf = (struct serial_struct __user *)arg;

	switch (cmd) {
	case TIOCGSERIAL:
		return f81534_get_serial_info(port, buf);
	default:
		break;
	}

	return -ENOIOCTLCMD;
}

static void f81534_process_per_serial_block(struct usb_serial_port *port,
		u8 *data)
{
@@ -1581,7 +1559,7 @@ static struct usb_serial_driver f81534_device = {
	.break_ctl =		f81534_break_ctl,
	.dtr_rts =		f81534_dtr_rts,
	.process_read_urb =	f81534_process_read_urb,
	.ioctl =		f81534_ioctl,
	.get_serial =		f81534_get_serial_info,
	.tiocmget =		f81534_tiocmget,
	.tiocmset =		f81534_tiocmset,
	.write_bulk_callback =	f81534_write_usb_callback,