diff options
author | Adam Kropelin <akropel1@rochester.rr.com> | 2007-07-29 11:03:29 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-30 16:27:47 -0400 |
commit | bc71e479cdb2caab9b4473f7ad508c3fcb142486 (patch) | |
tree | 8e8f499491acced62f303e853196ec6d039a377e /drivers/usb/serial | |
parent | 1060bce7b74c8914999a067803ec659949ff682e (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/usb/serial')
-rw-r--r-- | drivers/usb/serial/io_edgeport.c | 19 |
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 | } |