Commit bdebd6ee authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

Revert "usb-hub: report status changes only once"



This reverts commit a309ee6e.

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: default avatarGerd Hoffmann <kraxel@redhat.com>
parent b8cbc137
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ typedef struct USBHubPort {
    USBPort port;
    uint16_t wPortStatus;
    uint16_t wPortChange;
    uint16_t wPortChange_reported;
} USBHubPort;

typedef struct USBHubState {
@@ -468,12 +467,9 @@ 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) {
                trace_usb_hub_status_report(s->dev.addr, status);
                for(i = 0; i < n; i++) {