summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2013-08-27 17:00:04 +0200
committerSeokYeon Hwang <syeon.hwang@samsung.com>2013-11-07 13:48:34 +0900
commite91b6f42f5178efaf9a1ad4fea147b9a7aa20a57 (patch)
tree4d3023609503ad3393fc7084f05b514853f496fc
parent13f8d443d098c92e87cc3da56916d8450f7da837 (diff)
downloadqemu-e91b6f42f5178efaf9a1ad4fea147b9a7aa20a57.tar.gz
qemu-e91b6f42f5178efaf9a1ad4fea147b9a7aa20a57.tar.bz2
qemu-e91b6f42f5178efaf9a1ad4fea147b9a7aa20a57.zip
Revert "usb-hub: report status changes only once"
This reverts commit a309ee6e0a256f690760abfba44fceaa52a7c2f3. This isn't in line with the usb specification and adds regressions, win7 fails to drive the usb hub for example. Was added because it "solved" the issue of hubs interacting badly with the xhci host controller. Now with the root cause being fixed in xhci (commit <FIXME>) we can revert this one. Cc: qemu-stable@nongnu.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit bdebd6ee81f4d849aa8541c289203e3992450db0) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--hw/usb/dev-hub.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c
index e865a98751..4188a3cde8 100644
--- a/hw/usb/dev-hub.c
+++ b/hw/usb/dev-hub.c
@@ -33,7 +33,6 @@ typedef struct USBHubPort {
USBPort port;
uint16_t wPortStatus;
uint16_t wPortChange;
- uint16_t wPortChange_reported;
} USBHubPort;
typedef struct USBHubState {
@@ -468,11 +467,8 @@ static void usb_hub_handle_data(USBDevice *dev, USBPacket *p)
status = 0;
for(i = 0; i < NUM_PORTS; i++) {
port = &s->ports[i];
- if (port->wPortChange &&
- port->wPortChange_reported != port->wPortChange) {
+ if (port->wPortChange)
status |= (1 << (i + 1));
- }
- port->wPortChange_reported = port->wPortChange;
}
if (status != 0) {
for(i = 0; i < n; i++) {