diff options
Diffstat (limited to 'hw/usb-musb.c')
-rw-r--r-- | hw/usb-musb.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/hw/usb-musb.c b/hw/usb-musb.c index c2753c9..ecac631 100644 --- a/hw/usb-musb.c +++ b/hw/usb-musb.c @@ -605,6 +605,7 @@ static int musb_timeout(int ttype, int speed, int val) static void musb_packet(MUSBState *s, MUSBEndPoint *ep, int epnum, int pid, int len, USBCallback cb, int dir) { + USBDevice *dev; int ret; int idx = epnum && dir; int ttype; @@ -628,10 +629,8 @@ static void musb_packet(MUSBState *s, MUSBEndPoint *ep, ep->packey[dir].ep = ep; ep->packey[dir].dir = dir; - if (s->port.dev) - ret = usb_handle_packet(s->port.dev, &ep->packey[dir].p); - else - ret = USB_RET_NODEV; + dev = usb_find_device(&s->port, ep->packey[dir].p.devaddr); + ret = usb_handle_packet(dev, &ep->packey[dir].p); if (ret == USB_RET_ASYNC) { ep->status[dir] = len; |