> The problem seems to be the weak coupling between hardware driver and > ldisc. Would it be better to implement flow control between tty_buffer.c > and the hardware driver, instead of between ldisc and hardware driver? You need the ldisc involved in flow control as most of them have different ideas of flow control needs. That isn't to say it couldn't be propogated down the stack and drivers also be able to do low level flow control too. It would be easy for example to tweak tty_buffer to call a second throttle method on the hardware side when the buffer is getting a bit full. However the basic theory has always been 64K = 640Kbit + serial overhead ~= 800Kbit We would expect the queue to get run within 1/100th of a second so that gives us 8Mbit/sec of buffering headroom. Just what rate is your device running ? -- 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