]> git.proxmox.com Git - qemu.git/commit
uhci: Limit amount of frames processed in one go
authorHans de Goede <hdegoede@redhat.com>
Fri, 14 Dec 2012 13:35:36 +0000 (14:35 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 7 Jan 2013 11:57:24 +0000 (12:57 +0100)
commitf8f48b6957bf182339495e6be429f7bdc7ef1981
tree8f09809afca279cc51815be2aad096edce6c77b2
parent475443cf14d7ef01b9ea56eed8657804f7bdf664
uhci: Limit amount of frames processed in one go

Before this patch uhci would process an unlimited amount of frames when
behind on schedule, by setting the timer to a time already past, causing the
timer subsys to immediately recall the frame_timer function gain.

This would cause invalid cancellations of bulk queues when the catching up
processed more then 32 frames at a moment when the bulk qh was temporarily
unlinked (which the Linux uhci driver does).

This patch fixes this by processing maximum 16 frames in one go, and always
setting the timer one ms later, making the code behave more like the ehci
code.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-uhci.c