aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/mos7720.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/mos7720.c')
-rw-r--r--drivers/usb/serial/mos7720.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c
index f27c621a9297..51da424327b0 100644
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
@@ -1047,7 +1047,7 @@ static int mos7720_open(struct tty_struct *tty, struct usb_serial_port *port)
1047 * 1047 *
1048 * 0x08 : SP1/2 Control Reg 1048 * 0x08 : SP1/2 Control Reg
1049 */ 1049 */
1050 port_number = port->number - port->serial->minor; 1050 port_number = port->port_number;
1051 read_mos_reg(serial, port_number, LSR, &data); 1051 read_mos_reg(serial, port_number, LSR, &data);
1052 1052
1053 dev_dbg(&port->dev, "SS::%p LSR:%x\n", mos7720_port, data); 1053 dev_dbg(&port->dev, "SS::%p LSR:%x\n", mos7720_port, data);
@@ -1066,7 +1066,7 @@ static int mos7720_open(struct tty_struct *tty, struct usb_serial_port *port)
1066 1066
1067 write_mos_reg(serial, port_number, SP_CONTROL_REG, 0x00); 1067 write_mos_reg(serial, port_number, SP_CONTROL_REG, 0x00);
1068 read_mos_reg(serial, dummy, SP_CONTROL_REG, &data); 1068 read_mos_reg(serial, dummy, SP_CONTROL_REG, &data);
1069 data = data | (port->number - port->serial->minor + 1); 1069 data = data | (port->port_number + 1);
1070 write_mos_reg(serial, dummy, SP_CONTROL_REG, data); 1070 write_mos_reg(serial, dummy, SP_CONTROL_REG, data);
1071 mos7720_port->shadowLCR = 0x83; 1071 mos7720_port->shadowLCR = 0x83;
1072 write_mos_reg(serial, port_number, LCR, mos7720_port->shadowLCR); 1072 write_mos_reg(serial, port_number, LCR, mos7720_port->shadowLCR);
@@ -1147,8 +1147,8 @@ static void mos7720_close(struct usb_serial_port *port)
1147 usb_kill_urb(port->write_urb); 1147 usb_kill_urb(port->write_urb);
1148 usb_kill_urb(port->read_urb); 1148 usb_kill_urb(port->read_urb);
1149 1149
1150 write_mos_reg(serial, port->number - port->serial->minor, MCR, 0x00); 1150 write_mos_reg(serial, port->port_number, MCR, 0x00);
1151 write_mos_reg(serial, port->number - port->serial->minor, IER, 0x00); 1151 write_mos_reg(serial, port->port_number, IER, 0x00);
1152 1152
1153 mos7720_port->open = 0; 1153 mos7720_port->open = 0;
1154} 1154}
@@ -1172,8 +1172,7 @@ static void mos7720_break(struct tty_struct *tty, int break_state)
1172 data = mos7720_port->shadowLCR & ~UART_LCR_SBC; 1172 data = mos7720_port->shadowLCR & ~UART_LCR_SBC;
1173 1173
1174 mos7720_port->shadowLCR = data; 1174 mos7720_port->shadowLCR = data;
1175 write_mos_reg(serial, port->number - port->serial->minor, 1175 write_mos_reg(serial, port->port_number, LCR, mos7720_port->shadowLCR);
1176 LCR, mos7720_port->shadowLCR);
1177} 1176}
1178 1177
1179/* 1178/*
@@ -1304,8 +1303,8 @@ static void mos7720_throttle(struct tty_struct *tty)
1304 /* if we are implementing RTS/CTS, toggle that line */ 1303 /* if we are implementing RTS/CTS, toggle that line */
1305 if (tty->termios.c_cflag & CRTSCTS) { 1304 if (tty->termios.c_cflag & CRTSCTS) {
1306 mos7720_port->shadowMCR &= ~UART_MCR_RTS; 1305 mos7720_port->shadowMCR &= ~UART_MCR_RTS;
1307 write_mos_reg(port->serial, port->number - port->serial->minor, 1306 write_mos_reg(port->serial, port->port_number, MCR,
1308 MCR, mos7720_port->shadowMCR); 1307 mos7720_port->shadowMCR);
1309 if (status != 0) 1308 if (status != 0)
1310 return; 1309 return;
1311 } 1310 }
@@ -1336,8 +1335,8 @@ static void mos7720_unthrottle(struct tty_struct *tty)
1336 /* if we are implementing RTS/CTS, toggle that line */ 1335 /* if we are implementing RTS/CTS, toggle that line */
1337 if (tty->termios.c_cflag & CRTSCTS) { 1336 if (tty->termios.c_cflag & CRTSCTS) {
1338 mos7720_port->shadowMCR |= UART_MCR_RTS; 1337 mos7720_port->shadowMCR |= UART_MCR_RTS;
1339 write_mos_reg(port->serial, port->number - port->serial->minor, 1338 write_mos_reg(port->serial, port->port_number, MCR,
1340 MCR, mos7720_port->shadowMCR); 1339 mos7720_port->shadowMCR);
1341 if (status != 0) 1340 if (status != 0)
1342 return; 1341 return;
1343 } 1342 }
@@ -1361,7 +1360,7 @@ static int set_higher_rates(struct moschip_port *mos7720_port,
1361 * Init Sequence for higher rates 1360 * Init Sequence for higher rates
1362 ***********************************************/ 1361 ***********************************************/
1363 dev_dbg(&port->dev, "Sending Setting Commands ..........\n"); 1362 dev_dbg(&port->dev, "Sending Setting Commands ..........\n");
1364 port_number = port->number - port->serial->minor; 1363 port_number = port->port_number;
1365 1364
1366 write_mos_reg(serial, port_number, IER, 0x00); 1365 write_mos_reg(serial, port_number, IER, 0x00);
1367 write_mos_reg(serial, port_number, FCR, 0x00); 1366 write_mos_reg(serial, port_number, FCR, 0x00);
@@ -1487,7 +1486,7 @@ static int send_cmd_write_baud_rate(struct moschip_port *mos7720_port,
1487 port = mos7720_port->port; 1486 port = mos7720_port->port;
1488 serial = port->serial; 1487 serial = port->serial;
1489 1488
1490 number = port->number - port->serial->minor; 1489 number = port->port_number;
1491 dev_dbg(&port->dev, "%s - baud = %d\n", __func__, baudrate); 1490 dev_dbg(&port->dev, "%s - baud = %d\n", __func__, baudrate);
1492 1491
1493 /* Calculate the Divisor */ 1492 /* Calculate the Divisor */
@@ -1538,7 +1537,7 @@ static void change_port_settings(struct tty_struct *tty,
1538 1537
1539 port = mos7720_port->port; 1538 port = mos7720_port->port;
1540 serial = port->serial; 1539 serial = port->serial;
1541 port_number = port->number - port->serial->minor; 1540 port_number = port->port_number;
1542 1541
1543 if (!mos7720_port->open) { 1542 if (!mos7720_port->open) {
1544 dev_dbg(&port->dev, "%s - port not opened\n", __func__); 1543 dev_dbg(&port->dev, "%s - port not opened\n", __func__);
@@ -1731,7 +1730,7 @@ static int get_lsr_info(struct tty_struct *tty,
1731 struct usb_serial_port *port = tty->driver_data; 1730 struct usb_serial_port *port = tty->driver_data;
1732 unsigned int result = 0; 1731 unsigned int result = 0;
1733 unsigned char data = 0; 1732 unsigned char data = 0;
1734 int port_number = port->number - port->serial->minor; 1733 int port_number = port->port_number;
1735 int count; 1734 int count;
1736 1735
1737 count = mos7720_chars_in_buffer(tty); 1736 count = mos7720_chars_in_buffer(tty);
@@ -1793,8 +1792,8 @@ static int mos7720_tiocmset(struct tty_struct *tty,
1793 mcr &= ~UART_MCR_LOOP; 1792 mcr &= ~UART_MCR_LOOP;
1794 1793
1795 mos7720_port->shadowMCR = mcr; 1794 mos7720_port->shadowMCR = mcr;
1796 write_mos_reg(port->serial, port->number - port->serial->minor, 1795 write_mos_reg(port->serial, port->port_number, MCR,
1797 MCR, mos7720_port->shadowMCR); 1796 mos7720_port->shadowMCR);
1798 1797
1799 return 0; 1798 return 0;
1800} 1799}
@@ -1838,8 +1837,8 @@ static int set_modem_info(struct moschip_port *mos7720_port, unsigned int cmd,
1838 } 1837 }
1839 1838
1840 mos7720_port->shadowMCR = mcr; 1839 mos7720_port->shadowMCR = mcr;
1841 write_mos_reg(port->serial, port->number - port->serial->minor, 1840 write_mos_reg(port->serial, port->port_number, MCR,
1842 MCR, mos7720_port->shadowMCR); 1841 mos7720_port->shadowMCR);
1843 1842
1844 return 0; 1843 return 0;
1845} 1844}
@@ -1855,8 +1854,8 @@ static int get_serial_info(struct moschip_port *mos7720_port,
1855 memset(&tmp, 0, sizeof(tmp)); 1854 memset(&tmp, 0, sizeof(tmp));
1856 1855
1857 tmp.type = PORT_16550A; 1856 tmp.type = PORT_16550A;
1858 tmp.line = mos7720_port->port->serial->minor; 1857 tmp.line = mos7720_port->port->minor;
1859 tmp.port = mos7720_port->port->number; 1858 tmp.port = mos7720_port->port->port_number;
1860 tmp.irq = 0; 1859 tmp.irq = 0;
1861 tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ; 1860 tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
1862 tmp.xmit_fifo_size = NUM_URBS * URB_TRANSFER_BUFFER_SIZE; 1861 tmp.xmit_fifo_size = NUM_URBS * URB_TRANSFER_BUFFER_SIZE;