Skip to contentSkip to conversation

uhci: Change default transaction lifetime to 32 frames

PATCH Applied Max Krasnyansky 2 participants 2 messages Sep 6, 2008 – Sep 11, 2008 KVM

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 uhci: Change default transaction lifetime to 32 frames

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.

---
 hw/usb-uhci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
hw/usb-uhci.c +1 -1
index 62c743d..b90cf78 100644
@@ -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;
Signature · 1 line
1.5.5.1
#1 lore raw
Quoted 7 lines · Max Krasnyansky

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.

Quoted 5 lines

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.

Applied. Thanks.

Regards,

Anthony Liguori

Quoted 19 lines
---
 hw/usb-uhci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
hw/usb-uhci.c +1 -1
index 62c743d..b90cf78 100644
@@ -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;