ChangeSet 1.1451, 2004/06/14 16:19:17-07:00, [EMAIL PROTECTED]
[PATCH] USB: pl2303 & input overruns
Backport the 2.6 fixes for handing overruns and other status reports
from the device.
drivers/usb/serial/pl2303.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletion(-)
diff -Nru a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
--- a/drivers/usb/serial/pl2303.c Tue Jun 15 10:12:15 2004
+++ b/drivers/usb/serial/pl2303.c Tue Jun 15 10:12:15 2004
@@ -107,6 +107,7 @@
#define VENDOR_READ_REQUEST 0x01
#define UART_STATE 0x08
+#define UART_STATE_TRANSIENT_MASK 0x74
#define UART_DCD 0x01
#define UART_DSR 0x02
#define UART_BREAK_ERROR 0x04
@@ -681,6 +682,7 @@
struct pl2303_private *priv = usb_get_serial_port_data(port);
unsigned char *data = urb->transfer_buffer;
unsigned long flags;
+ u8 uart_state;
dbg("%s (%d)", __FUNCTION__, port->number);
@@ -711,8 +713,10 @@
return;
/* Save off the uart status for others to look at */
+ uart_state = data[UART_STATE];
spin_lock_irqsave(&priv->lock, flags);
- priv->line_status = data[UART_STATE];
+ uart_state |= (priv->line_status & UART_STATE_TRANSIENT_MASK);
+ priv->line_status = uart_state;
spin_unlock_irqrestore(&priv->lock, flags);
wake_up_interruptible (&priv->delta_msr_wait);
@@ -770,7 +774,9 @@
spin_lock_irqsave(&priv->lock, flags);
status = priv->line_status;
+ priv->line_status &= ~UART_STATE_TRANSIENT_MASK;
spin_unlock_irqrestore(&priv->lock, flags);
+ wake_up_interruptible (&priv->delta_msr_wait); //AF from 2.6
/* break takes precedence over parity, */
/* which takes precedence over framing errors */
-------------------------------------------------------
This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference
Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer
Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA
REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel