aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/io_edgeport.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/io_edgeport.c')
-rw-r--r--drivers/usb/serial/io_edgeport.c60
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(&currentCommand, &length, 2178 MAKE_CMD_EXT_CMD(&currentCommand, &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__);