aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAdam Kropelin <akropel1@rochester.rr.com>2007-07-29 11:03:29 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-30 16:27:47 -0400
commitbc71e479cdb2caab9b4473f7ad508c3fcb142486 (patch)
tree8e8f499491acced62f303e853196ec6d039a377e /drivers
parent1060bce7b74c8914999a067803ec659949ff682e (diff)
usb-serial: Fix edgeport regression on non-EPiC devices
Fix serious regression on non-EPiC edgeport usb-serial devices. Baud rate and MCR/LCR registers are not being written on these models due to apparent copy-n-paste errors introduced with EPiC support. Failure reported by Nick Pasich <Nick@NickAndBarb.net>. Signed-off-by: Adam Kropelin <akropel1@rochester.rr.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/serial/io_edgeport.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index dd42f57089ff..2ecb1d2a034d 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -2366,9 +2366,8 @@ static int send_cmd_write_baud_rate (struct edgeport_port *edge_port, int baudRa
2366 int status; 2366 int status;
2367 unsigned char number = edge_port->port->number - edge_port->port->serial->minor; 2367 unsigned char number = edge_port->port->number - edge_port->port->serial->minor;
2368 2368
2369 if ((!edge_serial->is_epic) || 2369 if (edge_serial->is_epic &&
2370 ((edge_serial->is_epic) && 2370 !edge_serial->epic_descriptor.Supports.IOSPSetBaudRate) {
2371 (!edge_serial->epic_descriptor.Supports.IOSPSetBaudRate))) {
2372 dbg("SendCmdWriteBaudRate - NOT Setting baud rate for port = %d, baud = %d", 2371 dbg("SendCmdWriteBaudRate - NOT Setting baud rate for port = %d, baud = %d",
2373 edge_port->port->number, baudRate); 2372 edge_port->port->number, baudRate);
2374 return 0; 2373 return 0;
@@ -2461,18 +2460,16 @@ static int send_cmd_write_uart_register (struct edgeport_port *edge_port, __u8 r
2461 2460
2462 dbg("%s - write to %s register 0x%02x", (regNum == MCR) ? "MCR" : "LCR", __FUNCTION__, regValue); 2461 dbg("%s - write to %s register 0x%02x", (regNum == MCR) ? "MCR" : "LCR", __FUNCTION__, regValue);
2463 2462
2464 if ((!edge_serial->is_epic) || 2463 if (edge_serial->is_epic &&
2465 ((edge_serial->is_epic) && 2464 !edge_serial->epic_descriptor.Supports.IOSPWriteMCR &&
2466 (!edge_serial->epic_descriptor.Supports.IOSPWriteMCR) && 2465 regNum == MCR) {
2467 (regNum == MCR))) {
2468 dbg("SendCmdWriteUartReg - Not writing to MCR Register"); 2466 dbg("SendCmdWriteUartReg - Not writing to MCR Register");
2469 return 0; 2467 return 0;
2470 } 2468 }
2471 2469
2472 if ((!edge_serial->is_epic) || 2470 if (edge_serial->is_epic &&
2473 ((edge_serial->is_epic) && 2471 !edge_serial->epic_descriptor.Supports.IOSPWriteLCR &&
2474 (!edge_serial->epic_descriptor.Supports.IOSPWriteLCR) && 2472 regNum == LCR) {
2475 (regNum == LCR))) {
2476 dbg ("SendCmdWriteUartReg - Not writing to LCR Register"); 2473 dbg ("SendCmdWriteUartReg - Not writing to LCR Register");
2477 return 0; 2474 return 0;
2478 } 2475 }