uhci: Change default transaction lifetime to 32 frames (Max Krasnyansky)
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 11 Sep 2008 19:42:00 +0000 (19:42 +0000)
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 11 Sep 2008 19:42:00 +0000 (19:42 +0000)
Transaction lifetime was originally set to 10 frames. That was an arbitrary
number I picked without much thinking :).
I'm changing that to 32 frames because things like interrupt transfers
and such are scheduled at that rate. It seems like 1/32 is accepted as
lowest supported rate. OHCI, for example, defines exactly 32 interrupt
heads.

While testing USB webcam under XP I noticed that interrupt transactions were
being canceled and then resubmitted on a regular basis, which works but is a
waste of CPU cycles. This change fixes that.
All other devices I have are not affected.

Signed-off-by: Max Krasnyansky <maxk@kernel.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5199 c046a42c-6fe2-441c-8c8c-71466251a162

hw/usb-uhci.c

index 62c743d583840d13d1a81836624d58ba8088f124..b90cf78c11169a42e39d21fc42c8a46bd8369e39 100644 (file)
@@ -781,7 +781,7 @@ static int uhci_handle_td(UHCIState *s, uint32_t addr, UHCI_TD *td, uint32_t *in
     async = uhci_async_find_td(s, addr, td->token);
     if (async) {
         /* Already submitted */
-        async->valid = 10;
+        async->valid = 32;
 
         if (!async->done)
             return 1;