|
|
9ae3a8 |
From 0808f68d525eca6d44f2f4660c34d953a36ae486 Mon Sep 17 00:00:00 2001
|
|
|
9ae3a8 |
From: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
9ae3a8 |
Date: Thu, 12 Sep 2013 09:39:32 +0200
|
|
|
9ae3a8 |
Subject: [PATCH 04/25] Revert "usb-hub: report status changes only once"
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
9ae3a8 |
Message-id: <1378978772-21612-5-git-send-email-kraxel@redhat.com>
|
|
|
9ae3a8 |
Patchwork-id: 54340
|
|
|
9ae3a8 |
O-Subject: [RHEL-7 qemu-kvm PATCH 4/4] Revert "usb-hub: report status changes only once"
|
|
|
9ae3a8 |
Bugzilla: 1001604
|
|
|
9ae3a8 |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
This reverts commit a309ee6e0a256f690760abfba44fceaa52a7c2f3.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
This isn't in line with the usb specification and adds regressions,
|
|
|
9ae3a8 |
win7 fails to drive the usb hub for example.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Was added because it "solved" the issue of hubs interacting badly
|
|
|
9ae3a8 |
with the xhci host controller. Now with the root cause being fixed
|
|
|
9ae3a8 |
in xhci (commit <FIXME>) we can revert this one.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
[ rhel7 note: Damn, forgot to fill in the final commit hash before
|
|
|
9ae3a8 |
sending out the upstream pull request. It's commit
|
|
|
9ae3a8 |
4d7a81c06f5f17e019a2d3a18300500bd64f6f40 ]
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Cc: qemu-stable@nongnu.org
|
|
|
9ae3a8 |
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
9ae3a8 |
(cherry picked from commit bdebd6ee81f4d849aa8541c289203e3992450db0)
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
hw/usb/dev-hub.c | 6 +-----
|
|
|
9ae3a8 |
1 file changed, 1 insertion(+), 5 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
hw/usb/dev-hub.c | 6 +-----
|
|
|
9ae3a8 |
1 files changed, 1 insertions(+), 5 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
diff --git a/hw/usb/dev-hub.c b/hw/usb/dev-hub.c
|
|
|
9ae3a8 |
index 0b71abd..a5f092b 100644
|
|
|
9ae3a8 |
--- a/hw/usb/dev-hub.c
|
|
|
9ae3a8 |
+++ b/hw/usb/dev-hub.c
|
|
|
9ae3a8 |
@@ -33,7 +33,6 @@ typedef struct USBHubPort {
|
|
|
9ae3a8 |
USBPort port;
|
|
|
9ae3a8 |
uint16_t wPortStatus;
|
|
|
9ae3a8 |
uint16_t wPortChange;
|
|
|
9ae3a8 |
- uint16_t wPortChange_reported;
|
|
|
9ae3a8 |
} USBHubPort;
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
typedef struct USBHubState {
|
|
|
9ae3a8 |
@@ -468,11 +467,8 @@ static void usb_hub_handle_data(USBDevice *dev, USBPacket *p)
|
|
|
9ae3a8 |
status = 0;
|
|
|
9ae3a8 |
for(i = 0; i < NUM_PORTS; i++) {
|
|
|
9ae3a8 |
port = &s->ports[i];
|
|
|
9ae3a8 |
- if (port->wPortChange &&
|
|
|
9ae3a8 |
- port->wPortChange_reported != port->wPortChange) {
|
|
|
9ae3a8 |
+ if (port->wPortChange)
|
|
|
9ae3a8 |
status |= (1 << (i + 1));
|
|
|
9ae3a8 |
- }
|
|
|
9ae3a8 |
- port->wPortChange_reported = port->wPortChange;
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
if (status != 0) {
|
|
|
9ae3a8 |
for(i = 0; i < n; i++) {
|
|
|
9ae3a8 |
--
|
|
|
9ae3a8 |
1.7.1
|
|
|
9ae3a8 |
|