qemu-e2k/hw/usb
Hans de Goede a1c3e4b839 ehci: Schedule async-bh when IAAD bit gets set
After the "ehci: Print a warning when a queue unexpectedly contains packets
on cancel" commit. Under certain reproducable conditions I was getting the
following message: "EHCI: Warning queue not empty on queue reset".

After aprox. 8 hours of debugging I've finally found the cause. The Linux EHCI
driver has an IAAD watchdog, to work around certain EHCI hardware sometimes
not acknowledging the doorbell at all. This watchdog has a timeout of 10 ms,
which is less then the time between 2 runs through the async schedule when
async_stepdown is at its highest value.

Thus the watchdog can trigger, after which Linux clears the IAAD bit and
re-uses the QH. IOW we were not properly detecting the unlink of the qh, due
to us missing (ignoring for more then 10 ms) the IAAD command, which triggered
the warning.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2012-08-31 11:58:03 +02:00
..
bus.c usb: restore USBDevice->attached on vmload 2012-06-20 14:46:02 +02:00
core.c usb: unique packet ids 2012-08-31 11:57:23 +02:00
desc.c qdev: Use wrapper for qdev_get_path 2012-06-18 15:14:38 +02:00
desc.h usb: add serial number generator 2012-04-26 12:21:17 +02:00
dev-audio.c usb: add serial number generator 2012-04-26 12:21:17 +02:00
dev-bluetooth.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-hid.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-hub.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-network.c net: Rename qemu_del_vlan_client() to qemu_del_net_client() 2012-08-01 13:32:10 +01:00
dev-serial.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-smartcard-reader.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-storage.c usb-storage: fix SYNCHRONIZE_CACHE 2012-08-07 10:49:06 +02:00
dev-uas.c usb: update uas product id 2012-08-16 08:39:49 +02:00
dev-wacom.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
hcd-ehci.c ehci: Schedule async-bh when IAAD bit gets set 2012-08-31 11:58:03 +02:00
hcd-musb.c usb: unique packet ids 2012-08-31 11:57:23 +02:00
hcd-ohci.c usb: unique packet ids 2012-08-31 11:57:23 +02:00
hcd-uhci.c usb: unique packet ids 2012-08-31 11:57:23 +02:00
hcd-xhci.c usb: unique packet ids 2012-08-31 11:57:23 +02:00
host-bsd.c
host-linux.c usb: async control xfer fixup 2012-08-16 08:39:49 +02:00
host-stub.c
libhw.c usb: Convert usb_packet_{map, unmap} to universal DMA helpers 2012-06-27 16:33:25 -05:00
Makefile.objs usb: add usb attached scsi emulation 2012-07-12 15:00:39 +02:00
redirect.c usb-redir: Correctly handle the usb_redir_babble usbredir status 2012-07-09 11:59:54 +02:00