Having had a look through the driver someone with docs or similar needs to explain how the ftdi_sio does hardware and software flow control. It has throttle/unthrottle methods but these just stall the URB queuing and don't do any flow processing of their own at all. Does the ftdi_sio do this in hardware when the urbs run low ? Otherwise it can certainly be simplified a lot. In particular at the point you get throttle event you've got about 64K of cushion to react (flow control being async anyway) and you actually *want* to pull data after you whack the modem lines because the other end also has a latency to respond. So all the clever partial processing of urb stuff is overkill. Whether it needs not to repost urbs to the device or to implement flow control in software I don't know without docs. With that done the driver ought to be a good deal easier to debug. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html