aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/serial/mos7720.c34
1 files changed, 13 insertions, 21 deletions
diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c
index 4c06357b3ef8..fc52ac75fbf6 100644
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
@@ -1786,24 +1786,20 @@ static int mos7720_tiocmset(struct tty_struct *tty,
1786 return 0; 1786 return 0;
1787} 1787}
1788 1788
1789static int get_serial_info(struct moschip_port *mos7720_port, 1789static int get_serial_info(struct tty_struct *tty,
1790 struct serial_struct __user *retinfo) 1790 struct serial_struct *ss)
1791{ 1791{
1792 struct serial_struct tmp; 1792 struct usb_serial_port *port = tty->driver_data;
1793 1793 struct moschip_port *mos7720_port = usb_get_serial_port_data(port);
1794 memset(&tmp, 0, sizeof(tmp));
1795
1796 tmp.type = PORT_16550A;
1797 tmp.line = mos7720_port->port->minor;
1798 tmp.port = mos7720_port->port->port_number;
1799 tmp.irq = 0;
1800 tmp.xmit_fifo_size = NUM_URBS * URB_TRANSFER_BUFFER_SIZE;
1801 tmp.baud_base = 9600;
1802 tmp.close_delay = 5*HZ;
1803 tmp.closing_wait = 30*HZ;
1804 1794
1805 if (copy_to_user(retinfo, &tmp, sizeof(*retinfo))) 1795 ss->type = PORT_16550A;
1806 return -EFAULT; 1796 ss->line = mos7720_port->port->minor;
1797 ss->port = mos7720_port->port->port_number;
1798 ss->irq = 0;
1799 ss->xmit_fifo_size = NUM_URBS * URB_TRANSFER_BUFFER_SIZE;
1800 ss->baud_base = 9600;
1801 ss->close_delay = 5*HZ;
1802 ss->closing_wait = 30*HZ;
1807 return 0; 1803 return 0;
1808} 1804}
1809 1805
@@ -1822,11 +1818,6 @@ static int mos7720_ioctl(struct tty_struct *tty,
1822 dev_dbg(&port->dev, "%s TIOCSERGETLSR\n", __func__); 1818 dev_dbg(&port->dev, "%s TIOCSERGETLSR\n", __func__);
1823 return get_lsr_info(tty, mos7720_port, 1819 return get_lsr_info(tty, mos7720_port,
1824 (unsigned int __user *)arg); 1820 (unsigned int __user *)arg);
1825
1826 case TIOCGSERIAL:
1827 dev_dbg(&port->dev, "%s TIOCGSERIAL\n", __func__);
1828 return get_serial_info(mos7720_port,
1829 (struct serial_struct __user *)arg);
1830 } 1821 }
1831 1822
1832 return -ENOIOCTLCMD; 1823 return -ENOIOCTLCMD;
@@ -1963,6 +1954,7 @@ static struct usb_serial_driver moschip7720_2port_driver = {
1963 .ioctl = mos7720_ioctl, 1954 .ioctl = mos7720_ioctl,
1964 .tiocmget = mos7720_tiocmget, 1955 .tiocmget = mos7720_tiocmget,
1965 .tiocmset = mos7720_tiocmset, 1956 .tiocmset = mos7720_tiocmset,
1957 .get_serial = get_serial_info,
1966 .set_termios = mos7720_set_termios, 1958 .set_termios = mos7720_set_termios,
1967 .write = mos7720_write, 1959 .write = mos7720_write,
1968 .write_room = mos7720_write_room, 1960 .write_room = mos7720_write_room,