]> git.proxmox.com Git - qemu.git/commit
uhci: Raise interrupt when requested even for non active tds
authorHans de Goede <hdegoede@redhat.com>
Wed, 10 Oct 2012 13:50:36 +0000 (15:50 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 30 Nov 2012 21:39:28 +0000 (15:39 -0600)
commit85c91ea7e2500d44a8381a6018f3f7e9aab1abe6
tree23253d58c51c50f08aa1b79569c814ae8d24eb9f
parent5af7caaadd1d11c7f061c914e34a5d917015b733
uhci: Raise interrupt when requested even for non active tds

According to the spec we must raise an interrupt when one is requested
even for non active tds.

Linux depends on this, for bulk transfers it runs an inactivity timer
to work around a bug in early uhci revisions, when we take longer then
200 ms to process a packet, this timer goes of, and as part of the
handling Linux then unlinks the qh, and relinks it after the frindex
has increased by atleast 1, the problem is Linux only checks for the
frindex increases on an interrupt, and we don't send that, causing
the qh to go inactive for more then 32 frames, at which point we
consider the packet cancelled.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit 883bca776daa43111e9c39008f0038f7c62ae723)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/usb/hcd-uhci.c