projects
/
sdk
/
emulator
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8928c9c
)
uhci: Use only one queue for ctrl endpoints
author
Hans de Goede
<hdegoede@redhat.com>
Wed, 24 Oct 2012 16:31:20 +0000
(18:31 +0200)
committer
Gerd Hoffmann
<kraxel@redhat.com>
Thu, 25 Oct 2012 07:08:12 +0000
(09:08 +0200)
ctrl endpoints use different pids for different phases of a control
transfer, this patch makes us use only one queue for a ctrl ep, rather
then 3.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-uhci.c
patch
|
blob
|
history
diff --git
a/hw/usb/hcd-uhci.c
b/hw/usb/hcd-uhci.c
index
a9e06ef
..
b6b972f
100644
(file)
--- a/
hw/usb/hcd-uhci.c
+++ b/
hw/usb/hcd-uhci.c
@@
-167,8
+167,13
@@
static void uhci_queue_fill(UHCIQueue *q, UHCI_TD *td);
static inline int32_t uhci_queue_token(UHCI_TD *td)
{
- /* covers ep, dev, pid -> identifies the endpoint */
- return td->token & 0x7ffff;
+ if ((td->token & (0xf << 15)) == 0) {
+ /* ctrl ep, cover ep and dev, not pid! */
+ return td->token & 0x7ff00;
+ } else {
+ /* covers ep, dev, pid -> identifies the endpoint */
+ return td->token & 0x7ffff;
+ }
}
static UHCIQueue *uhci_queue_new(UHCIState *s, uint32_t qh_addr, UHCI_TD *td,