On Mon, Mar 9, 2020 at 6:08 AM Gerd Hoffmann <[email protected]> wrote: > > On Fri, Mar 06, 2020 at 09:09:17AM -0500, Jason Andryuk wrote: > > Currently usb-serial devices are unable to send data into guests with > > the xhci controller. Data is copied into the usb-serial's buffer, but > > it is not sent into the guest. Data coming out of the guest works > > properly. usb-serial devices work properly with ehci. > > > > Have usb-serial call usb_wakeup() when receiving data from the chardev. > > This seems to notify the xhci controller and fix inbound data flow. > > > > Also add USB_CFG_ATT_WAKEUP to the device's bmAttributes. This matches > > a real FTDI serial adapter's bmAttributes. > > > > Signed-off-by: Jason Andryuk <[email protected]> > > Added to usb patch queue.
Thanks. Unfortunately, while this seemed okay in my early testing, something is still off. Typing at slow (human) speed, input seems fine. Pasting a large chunk of data into netcat has some of the data dropped (not coming out of /dev/ttyUSB0 in the guest). The VM kernel reports "ttyUSB0: X input overrun(s)" with X seen between 1 and 8. EHCI seems fine, even for chunks greater than the 384 byte buffer of usb-serial. As one example, pasting Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0 looks to only have the following output in the guest Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Acc1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0 Characters 62 & 63 don't make it through "c0Ac" -> "cc". The guest kernel does *not* report input overruns in this case. Any ideas? Thanks, Jason
