diff options
Diffstat (limited to 'drivers/usb/serial/mos7720.c')
-rw-r--r-- | drivers/usb/serial/mos7720.c | 39 |
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; |