diff options
Diffstat (limited to 'drivers/usb/serial/io_edgeport.c')
-rw-r--r-- | drivers/usb/serial/io_edgeport.c | 60 |
1 files changed, 24 insertions, 36 deletions
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c index 1477e8593476..dc2803b5eb09 100644 --- a/drivers/usb/serial/io_edgeport.c +++ b/drivers/usb/serial/io_edgeport.c | |||
@@ -915,8 +915,8 @@ static int edge_open(struct tty_struct *tty, struct usb_serial_port *port) | |||
915 | return -ENOMEM; | 915 | return -ENOMEM; |
916 | } | 916 | } |
917 | 917 | ||
918 | dev_dbg(dev, "%s(%d) - Initialize TX fifo to %d bytes\n", | 918 | dev_dbg(dev, "%s - Initialize TX fifo to %d bytes\n", |
919 | __func__, port->number, edge_port->maxTxCredits); | 919 | __func__, edge_port->maxTxCredits); |
920 | 920 | ||
921 | return 0; | 921 | return 0; |
922 | } | 922 | } |
@@ -1122,9 +1122,8 @@ static int edge_write(struct tty_struct *tty, struct usb_serial_port *port, | |||
1122 | copySize = min((unsigned int)count, | 1122 | copySize = min((unsigned int)count, |
1123 | (edge_port->txCredits - fifo->count)); | 1123 | (edge_port->txCredits - fifo->count)); |
1124 | 1124 | ||
1125 | dev_dbg(&port->dev, "%s(%d) of %d byte(s) Fifo room %d -- will copy %d bytes\n", | 1125 | dev_dbg(&port->dev, "%s of %d byte(s) Fifo room %d -- will copy %d bytes\n", |
1126 | __func__, port->number, count, | 1126 | __func__, count, edge_port->txCredits - fifo->count, copySize); |
1127 | edge_port->txCredits - fifo->count, copySize); | ||
1128 | 1127 | ||
1129 | /* catch writes of 0 bytes which the tty driver likes to give us, | 1128 | /* catch writes of 0 bytes which the tty driver likes to give us, |
1130 | and when txCredits is empty */ | 1129 | and when txCredits is empty */ |
@@ -1216,9 +1215,8 @@ static void send_more_port_data(struct edgeport_serial *edge_serial, | |||
1216 | if (edge_port->write_in_progress || | 1215 | if (edge_port->write_in_progress || |
1217 | !edge_port->open || | 1216 | !edge_port->open || |
1218 | (fifo->count == 0)) { | 1217 | (fifo->count == 0)) { |
1219 | dev_dbg(dev, "%s(%d) EXIT - fifo %d, PendingWrite = %d\n", | 1218 | dev_dbg(dev, "%s EXIT - fifo %d, PendingWrite = %d\n", |
1220 | __func__, edge_port->port->number, | 1219 | __func__, fifo->count, edge_port->write_in_progress); |
1221 | fifo->count, edge_port->write_in_progress); | ||
1222 | goto exit_send; | 1220 | goto exit_send; |
1223 | } | 1221 | } |
1224 | 1222 | ||
@@ -1230,9 +1228,8 @@ static void send_more_port_data(struct edgeport_serial *edge_serial, | |||
1230 | * it's better to wait for more credits so we can do a larger write. | 1228 | * it's better to wait for more credits so we can do a larger write. |
1231 | */ | 1229 | */ |
1232 | if (edge_port->txCredits < EDGE_FW_GET_TX_CREDITS_SEND_THRESHOLD(edge_port->maxTxCredits, EDGE_FW_BULK_MAX_PACKET_SIZE)) { | 1230 | if (edge_port->txCredits < EDGE_FW_GET_TX_CREDITS_SEND_THRESHOLD(edge_port->maxTxCredits, EDGE_FW_BULK_MAX_PACKET_SIZE)) { |
1233 | dev_dbg(dev, "%s(%d) Not enough credit - fifo %d TxCredit %d\n", | 1231 | dev_dbg(dev, "%s Not enough credit - fifo %d TxCredit %d\n", |
1234 | __func__, edge_port->port->number, fifo->count, | 1232 | __func__, fifo->count, edge_port->txCredits); |
1235 | edge_port->txCredits); | ||
1236 | goto exit_send; | 1233 | goto exit_send; |
1237 | } | 1234 | } |
1238 | 1235 | ||
@@ -1256,10 +1253,8 @@ static void send_more_port_data(struct edgeport_serial *edge_serial, | |||
1256 | edge_port->write_in_progress = false; | 1253 | edge_port->write_in_progress = false; |
1257 | goto exit_send; | 1254 | goto exit_send; |
1258 | } | 1255 | } |
1259 | buffer[0] = IOSP_BUILD_DATA_HDR1(edge_port->port->number | 1256 | buffer[0] = IOSP_BUILD_DATA_HDR1(edge_port->port->port_number, count); |
1260 | - edge_port->port->serial->minor, count); | 1257 | buffer[1] = IOSP_BUILD_DATA_HDR2(edge_port->port->port_number, count); |
1261 | buffer[1] = IOSP_BUILD_DATA_HDR2(edge_port->port->number | ||
1262 | - edge_port->port->serial->minor, count); | ||
1263 | 1258 | ||
1264 | /* now copy our data */ | 1259 | /* now copy our data */ |
1265 | bytesleft = fifo->size - fifo->tail; | 1260 | bytesleft = fifo->size - fifo->tail; |
@@ -1377,8 +1372,7 @@ static int edge_chars_in_buffer(struct tty_struct *tty) | |||
1377 | edge_port->txfifo.count; | 1372 | edge_port->txfifo.count; |
1378 | spin_unlock_irqrestore(&edge_port->ep_lock, flags); | 1373 | spin_unlock_irqrestore(&edge_port->ep_lock, flags); |
1379 | if (num_chars) { | 1374 | if (num_chars) { |
1380 | dev_dbg(&port->dev, "%s(port %d) - returns %d\n", __func__, | 1375 | dev_dbg(&port->dev, "%s - returns %d\n", __func__, num_chars); |
1381 | port->number, num_chars); | ||
1382 | } | 1376 | } |
1383 | 1377 | ||
1384 | return num_chars; | 1378 | return num_chars; |
@@ -1575,8 +1569,8 @@ static int get_serial_info(struct edgeport_port *edge_port, | |||
1575 | memset(&tmp, 0, sizeof(tmp)); | 1569 | memset(&tmp, 0, sizeof(tmp)); |
1576 | 1570 | ||
1577 | tmp.type = PORT_16550A; | 1571 | tmp.type = PORT_16550A; |
1578 | tmp.line = edge_port->port->serial->minor; | 1572 | tmp.line = edge_port->port->minor; |
1579 | tmp.port = edge_port->port->number; | 1573 | tmp.port = edge_port->port->port_number; |
1580 | tmp.irq = 0; | 1574 | tmp.irq = 0; |
1581 | tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ; | 1575 | tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ; |
1582 | tmp.xmit_fifo_size = edge_port->maxTxCredits; | 1576 | tmp.xmit_fifo_size = edge_port->maxTxCredits; |
@@ -1601,15 +1595,15 @@ static int edge_ioctl(struct tty_struct *tty, | |||
1601 | DEFINE_WAIT(wait); | 1595 | DEFINE_WAIT(wait); |
1602 | struct edgeport_port *edge_port = usb_get_serial_port_data(port); | 1596 | struct edgeport_port *edge_port = usb_get_serial_port_data(port); |
1603 | 1597 | ||
1604 | dev_dbg(&port->dev, "%s - port %d, cmd = 0x%x\n", __func__, port->number, cmd); | 1598 | dev_dbg(&port->dev, "%s - cmd = 0x%x\n", __func__, cmd); |
1605 | 1599 | ||
1606 | switch (cmd) { | 1600 | switch (cmd) { |
1607 | case TIOCSERGETLSR: | 1601 | case TIOCSERGETLSR: |
1608 | dev_dbg(&port->dev, "%s (%d) TIOCSERGETLSR\n", __func__, port->number); | 1602 | dev_dbg(&port->dev, "%s TIOCSERGETLSR\n", __func__); |
1609 | return get_lsr_info(edge_port, (unsigned int __user *) arg); | 1603 | return get_lsr_info(edge_port, (unsigned int __user *) arg); |
1610 | 1604 | ||
1611 | case TIOCGSERIAL: | 1605 | case TIOCGSERIAL: |
1612 | dev_dbg(&port->dev, "%s (%d) TIOCGSERIAL\n", __func__, port->number); | 1606 | dev_dbg(&port->dev, "%s TIOCGSERIAL\n", __func__); |
1613 | return get_serial_info(edge_port, (struct serial_struct __user *) arg); | 1607 | return get_serial_info(edge_port, (struct serial_struct __user *) arg); |
1614 | } | 1608 | } |
1615 | return -ENOIOCTLCMD; | 1609 | return -ENOIOCTLCMD; |
@@ -2181,9 +2175,8 @@ static int send_iosp_ext_cmd(struct edgeport_port *edge_port, | |||
2181 | 2175 | ||
2182 | currentCommand = buffer; | 2176 | currentCommand = buffer; |
2183 | 2177 | ||
2184 | MAKE_CMD_EXT_CMD(¤tCommand, &length, | 2178 | MAKE_CMD_EXT_CMD(¤tCommand, &length, edge_port->port->port_number, |
2185 | edge_port->port->number - edge_port->port->serial->minor, | 2179 | command, param); |
2186 | command, param); | ||
2187 | 2180 | ||
2188 | status = write_cmd_usb(edge_port, buffer, length); | 2181 | status = write_cmd_usb(edge_port, buffer, length); |
2189 | if (status) { | 2182 | if (status) { |
@@ -2266,18 +2259,16 @@ static int send_cmd_write_baud_rate(struct edgeport_port *edge_port, | |||
2266 | int cmdLen = 0; | 2259 | int cmdLen = 0; |
2267 | int divisor; | 2260 | int divisor; |
2268 | int status; | 2261 | int status; |
2269 | unsigned char number = | 2262 | u32 number = edge_port->port->port_number; |
2270 | edge_port->port->number - edge_port->port->serial->minor; | ||
2271 | 2263 | ||
2272 | if (edge_serial->is_epic && | 2264 | if (edge_serial->is_epic && |
2273 | !edge_serial->epic_descriptor.Supports.IOSPSetBaudRate) { | 2265 | !edge_serial->epic_descriptor.Supports.IOSPSetBaudRate) { |
2274 | dev_dbg(dev, "SendCmdWriteBaudRate - NOT Setting baud rate for port = %d, baud = %d\n", | 2266 | dev_dbg(dev, "SendCmdWriteBaudRate - NOT Setting baud rate for port, baud = %d\n", |
2275 | edge_port->port->number, baudRate); | 2267 | baudRate); |
2276 | return 0; | 2268 | return 0; |
2277 | } | 2269 | } |
2278 | 2270 | ||
2279 | dev_dbg(dev, "%s - port = %d, baud = %d\n", __func__, | 2271 | dev_dbg(dev, "%s - baud = %d\n", __func__, baudRate); |
2280 | edge_port->port->number, baudRate); | ||
2281 | 2272 | ||
2282 | status = calc_baud_rate_divisor(dev, baudRate, &divisor); | 2273 | status = calc_baud_rate_divisor(dev, baudRate, &divisor); |
2283 | if (status) { | 2274 | if (status) { |
@@ -2388,9 +2379,8 @@ static int send_cmd_write_uart_register(struct edgeport_port *edge_port, | |||
2388 | currCmd = cmdBuffer; | 2379 | currCmd = cmdBuffer; |
2389 | 2380 | ||
2390 | /* Build a cmd in the buffer to write the given register */ | 2381 | /* Build a cmd in the buffer to write the given register */ |
2391 | MAKE_CMD_WRITE_REG(&currCmd, &cmdLen, | 2382 | MAKE_CMD_WRITE_REG(&currCmd, &cmdLen, edge_port->port->port_number, |
2392 | edge_port->port->number - edge_port->port->serial->minor, | 2383 | regNum, regValue); |
2393 | regNum, regValue); | ||
2394 | 2384 | ||
2395 | status = write_cmd_usb(edge_port, cmdBuffer, cmdLen); | 2385 | status = write_cmd_usb(edge_port, cmdBuffer, cmdLen); |
2396 | if (status) { | 2386 | if (status) { |
@@ -2424,8 +2414,6 @@ static void change_port_settings(struct tty_struct *tty, | |||
2424 | __u8 txFlow; | 2414 | __u8 txFlow; |
2425 | int status; | 2415 | int status; |
2426 | 2416 | ||
2427 | dev_dbg(dev, "%s - port %d\n", __func__, edge_port->port->number); | ||
2428 | |||
2429 | if (!edge_port->open && | 2417 | if (!edge_port->open && |
2430 | !edge_port->openPending) { | 2418 | !edge_port->openPending) { |
2431 | dev_dbg(dev, "%s - port not opened\n", __func__); | 2419 | dev_dbg(dev, "%s - port not opened\n", __func__); |