[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 14/14] uhci: Don't queue up packets after one with t
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 14/14] uhci: Don't queue up packets after one with the SPD flag set |
Date: |
Thu, 13 Sep 2012 10:40:00 +0200 |
From: Hans de Goede <address@hidden>
Don't queue up packets after a packet with the SPD (short packet detect)
flag set. Since we won't know if the packet will actually be short until it
has completed, and if it is short we should stop the queue.
This fixes a miniature photoframe emulating a USB cdrom with the windows
software for it not working.
Signed-off-by: Hans de Goede <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/usb/hcd-uhci.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index c7c8786..cdc8bc3 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -1000,6 +1000,9 @@ static void uhci_fill_queue(UHCIState *s, UHCI_TD *td)
}
assert(ret == TD_RESULT_ASYNC_START);
assert(int_mask == 0);
+ if (ptd.ctrl & TD_CTRL_SPD) {
+ break;
+ }
plink = ptd.link;
}
}
@@ -1097,7 +1100,7 @@ static void uhci_process_frame(UHCIState *s)
case TD_RESULT_ASYNC_START:
trace_usb_uhci_td_async(curr_qh & ~0xf, link & ~0xf);
- if (is_valid(td.link)) {
+ if (is_valid(td.link) && !(td.ctrl & TD_CTRL_SPD)) {
uhci_fill_queue(s, &td);
}
link = curr_qh ? qh.link : td.link;
--
1.7.1
- [Qemu-devel] [PULL 00/14] usb patch queue, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 04/14] ehci: Don't process too much frames in 1 timer tick (v2), Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 07/14] ehci: Walk async schedule before and after migration, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 03/14] ehci: Fix interrupts stopping when Interrupt Threshold Control is 8, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 06/14] ehci: Don't set seen to 0 when removing unseen queue-heads, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 09/14] usb-redir: Add an already_in_flight packet-id queue, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 14/14] uhci: Don't queue up packets after one with the SPD flag set,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 05/14] configure: usbredir fixes, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 13/14] usb-redir: Revert usb-redir part of commit 93bfef4c, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 10/14] usb-redir: Store max_packet_size in endp_data, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 08/14] usb-redir: Change cancelled packet code into a generic packet-id queue, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 01/14] usb-host: allow emulated (non-async) control requests without USBPacket, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 12/14] usb-redir: Add chardev open / close debug logging, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 02/14] ehci: switch to new-style memory ops, Gerd Hoffmann, 2012/09/13
- [Qemu-devel] [PATCH 11/14] usb-redir: Add support for migration, Gerd Hoffmann, 2012/09/13
- Re: [Qemu-devel] [PULL 00/14] usb patch queue, Michael Tokarev, 2012/09/14