Commit 57e57236 authored by Al Viro's avatar Al Viro

ti_usb_3410_5052: switch to ->[sg]et_serial()

Reviewed-by: default avatarJohan Hovold <johan@kernel.org>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ee08cefb
...@@ -313,8 +313,6 @@ static int ti_chars_in_buffer(struct tty_struct *tty); ...@@ -313,8 +313,6 @@ static int ti_chars_in_buffer(struct tty_struct *tty);
static bool ti_tx_empty(struct usb_serial_port *port); static bool ti_tx_empty(struct usb_serial_port *port);
static void ti_throttle(struct tty_struct *tty); static void ti_throttle(struct tty_struct *tty);
static void ti_unthrottle(struct tty_struct *tty); static void ti_unthrottle(struct tty_struct *tty);
static int ti_ioctl(struct tty_struct *tty,
unsigned int cmd, unsigned long arg);
static void ti_set_termios(struct tty_struct *tty, static void ti_set_termios(struct tty_struct *tty,
struct usb_serial_port *port, struct ktermios *old_termios); struct usb_serial_port *port, struct ktermios *old_termios);
static int ti_tiocmget(struct tty_struct *tty); static int ti_tiocmget(struct tty_struct *tty);
...@@ -330,10 +328,10 @@ static void ti_recv(struct usb_serial_port *port, unsigned char *data, ...@@ -330,10 +328,10 @@ static void ti_recv(struct usb_serial_port *port, unsigned char *data,
static void ti_send(struct ti_port *tport); static void ti_send(struct ti_port *tport);
static int ti_set_mcr(struct ti_port *tport, unsigned int mcr); static int ti_set_mcr(struct ti_port *tport, unsigned int mcr);
static int ti_get_lsr(struct ti_port *tport, u8 *lsr); static int ti_get_lsr(struct ti_port *tport, u8 *lsr);
static int ti_get_serial_info(struct ti_port *tport, static int ti_get_serial_info(struct tty_struct *tty,
struct serial_struct __user *ret_arg); struct serial_struct *ss);
static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport, static int ti_set_serial_info(struct tty_struct *tty,
struct serial_struct __user *new_arg); struct serial_struct *ss);
static void ti_handle_new_msr(struct ti_port *tport, u8 msr); static void ti_handle_new_msr(struct ti_port *tport, u8 msr);
static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty); static void ti_stop_read(struct ti_port *tport, struct tty_struct *tty);
...@@ -436,7 +434,8 @@ static struct usb_serial_driver ti_1port_device = { ...@@ -436,7 +434,8 @@ static struct usb_serial_driver ti_1port_device = {
.tx_empty = ti_tx_empty, .tx_empty = ti_tx_empty,
.throttle = ti_throttle, .throttle = ti_throttle,
.unthrottle = ti_unthrottle, .unthrottle = ti_unthrottle,
.ioctl = ti_ioctl, .get_serial = ti_get_serial_info,
.set_serial = ti_set_serial_info,
.set_termios = ti_set_termios, .set_termios = ti_set_termios,
.tiocmget = ti_tiocmget, .tiocmget = ti_tiocmget,
.tiocmset = ti_tiocmset, .tiocmset = ti_tiocmset,
...@@ -469,7 +468,8 @@ static struct usb_serial_driver ti_2port_device = { ...@@ -469,7 +468,8 @@ static struct usb_serial_driver ti_2port_device = {
.tx_empty = ti_tx_empty, .tx_empty = ti_tx_empty,
.throttle = ti_throttle, .throttle = ti_throttle,
.unthrottle = ti_unthrottle, .unthrottle = ti_unthrottle,
.ioctl = ti_ioctl, .get_serial = ti_get_serial_info,
.set_serial = ti_set_serial_info,
.set_termios = ti_set_termios, .set_termios = ti_set_termios,
.tiocmget = ti_tiocmget, .tiocmget = ti_tiocmget,
.tiocmset = ti_tiocmset, .tiocmset = ti_tiocmset,
...@@ -902,24 +902,6 @@ static void ti_unthrottle(struct tty_struct *tty) ...@@ -902,24 +902,6 @@ static void ti_unthrottle(struct tty_struct *tty)
} }
} }
static int ti_ioctl(struct tty_struct *tty,
unsigned int cmd, unsigned long arg)
{
struct usb_serial_port *port = tty->driver_data;
struct ti_port *tport = usb_get_serial_port_data(port);
switch (cmd) {
case TIOCGSERIAL:
return ti_get_serial_info(tport,
(struct serial_struct __user *)arg);
case TIOCSSERIAL:
return ti_set_serial_info(tty, tport,
(struct serial_struct __user *)arg);
}
return -ENOIOCTLCMD;
}
static void ti_set_termios(struct tty_struct *tty, static void ti_set_termios(struct tty_struct *tty,
struct usb_serial_port *port, struct ktermios *old_termios) struct usb_serial_port *port, struct ktermios *old_termios)
{ {
...@@ -1417,45 +1399,37 @@ static int ti_get_lsr(struct ti_port *tport, u8 *lsr) ...@@ -1417,45 +1399,37 @@ static int ti_get_lsr(struct ti_port *tport, u8 *lsr)
} }
static int ti_get_serial_info(struct ti_port *tport, static int ti_get_serial_info(struct tty_struct *tty,
struct serial_struct __user *ret_arg) struct serial_struct *ss)
{ {
struct usb_serial_port *port = tport->tp_port; struct usb_serial_port *port = tty->driver_data;
struct serial_struct ret_serial; struct ti_port *tport = usb_get_serial_port_data(port);
unsigned cwait; unsigned cwait;
cwait = port->port.closing_wait; cwait = port->port.closing_wait;
if (cwait != ASYNC_CLOSING_WAIT_NONE) if (cwait != ASYNC_CLOSING_WAIT_NONE)
cwait = jiffies_to_msecs(cwait) / 10; cwait = jiffies_to_msecs(cwait) / 10;
memset(&ret_serial, 0, sizeof(ret_serial)); ss->type = PORT_16550A;
ss->line = port->minor;
ret_serial.type = PORT_16550A; ss->port = port->port_number;
ret_serial.line = port->minor; ss->xmit_fifo_size = kfifo_size(&port->write_fifo);
ret_serial.port = port->port_number; ss->baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
ret_serial.xmit_fifo_size = kfifo_size(&port->write_fifo); ss->closing_wait = cwait;
ret_serial.baud_base = tport->tp_tdev->td_is_3410 ? 921600 : 460800;
ret_serial.closing_wait = cwait;
if (copy_to_user(ret_arg, &ret_serial, sizeof(*ret_arg)))
return -EFAULT;
return 0; return 0;
} }
static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport, static int ti_set_serial_info(struct tty_struct *tty,
struct serial_struct __user *new_arg) struct serial_struct *ss)
{ {
struct serial_struct new_serial; struct usb_serial_port *port = tty->driver_data;
struct ti_port *tport = usb_get_serial_port_data(port);
unsigned cwait; unsigned cwait;
if (copy_from_user(&new_serial, new_arg, sizeof(new_serial))) cwait = ss->closing_wait;
return -EFAULT;
cwait = new_serial.closing_wait;
if (cwait != ASYNC_CLOSING_WAIT_NONE) if (cwait != ASYNC_CLOSING_WAIT_NONE)
cwait = msecs_to_jiffies(10 * new_serial.closing_wait); cwait = msecs_to_jiffies(10 * ss->closing_wait);
tport->tp_port->port.closing_wait = cwait; tport->tp_port->port.closing_wait = cwait;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment