Revert "usb-hub: report status changes only once"
This reverts commita309ee6e0a
. 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 commitbdebd6ee81
) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
c0a5eb81b4
commit
c09a4634d9
|
@ -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++) {
|
||||
|
|
Loading…
Reference in New Issue