Implement the function usb_hub_handle_reset
PATCH 1/1 Implement the function usb_hub_handle_reset
Implement the function usb_hub_handle_reset. without it the guest propablly fail to configure the usb device attached to the virtulized hub with a correct address.
Typically, attaching more than one usb devices when lauch qemu may lead to the problem.
Signed-off-by hkran <[email protected]>
--- hw/usb-hub.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-)
hw/usb-hub.c +12 -1
@@ -220,7 +220,18 @@ static void usb_hub_complete(USBPort *port, USBPacket *packet)static void usb_hub_handle_reset (USBDevice *dev) { -/* XXX: do it */ +USBHubPort *port =NULL ; +USBHubState *s = (USBHubState *)dev; +int i; + +for (i =0 ; i <NUM_PORTS ; i++) { + port = &(s->ports[i]); +if (port->wPortStatus &PORT_STAT_CONNECTION ) { +usb_reset (&port->port); + port->wPortStatus =PORT_STAT_CONNECTION |PORT_STAT_POWER ; + port->wPortChange =PORT_STAT_C_CONNECTION ; + } + } } static int usb_hub_handle_control(USBDevice *dev, USBPacket *p,
Signature · 1 line
1.7.1