It seems that the CDC-ACM driver can get stuck in a throttling condition. This happens when the device is closed while acm->throttle is active; the ldisc flushes its buffer but the driver remains throttled. If the device is reopened later, the driver will still be throttled while the tty ldisc thinks everything is clear.
The proposed patch fixes this by resetting the acm->throttle flag at device open time. This patch was tested on i386, ohci-hcd with a custom USB device and appears to fix the problem. Bye, Joris. diff -ur -U5 linux-2.6.19.2-orig/drivers/usb/class/cdc-acm.c linux-2.6.19.2/drivers/usb/class/cdc-acm.c --- linux-2.6.19.2-orig/drivers/usb/class/cdc-acm.c 2007-01-10 20:10:37.000000000 +0100 +++ linux-2.6.19.2/drivers/usb/class/cdc-acm.c 2007-02-02 22:58:45.000000000 +0100 @@ -478,10 +478,12 @@ } for (i = 0; i < acm->rx_buflimit; i++) { list_add(&(acm->rb[i].list), &acm->spare_read_bufs); } + acm->throttle = 0; + tasklet_schedule(&acm->urb_task); done: err_out: mutex_unlock(&open_mutex); ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel