diff options
-rw-r--r-- | drivers/usb/gadget/udc/dummy_hcd.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c index baf72f95f0f1..213b52508621 100644 --- a/drivers/usb/gadget/udc/dummy_hcd.c +++ b/drivers/usb/gadget/udc/dummy_hcd.c | |||
@@ -979,8 +979,18 @@ static int dummy_udc_start(struct usb_gadget *g, | |||
979 | struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g); | 979 | struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g); |
980 | struct dummy *dum = dum_hcd->dum; | 980 | struct dummy *dum = dum_hcd->dum; |
981 | 981 | ||
982 | if (driver->max_speed == USB_SPEED_UNKNOWN) | 982 | switch (g->speed) { |
983 | /* All the speeds we support */ | ||
984 | case USB_SPEED_LOW: | ||
985 | case USB_SPEED_FULL: | ||
986 | case USB_SPEED_HIGH: | ||
987 | case USB_SPEED_SUPER: | ||
988 | break; | ||
989 | default: | ||
990 | dev_err(dummy_dev(dum_hcd), "Unsupported driver max speed %d\n", | ||
991 | driver->max_speed); | ||
983 | return -EINVAL; | 992 | return -EINVAL; |
993 | } | ||
984 | 994 | ||
985 | /* | 995 | /* |
986 | * SLAVE side init ... the layer above hardware, which | 996 | * SLAVE side init ... the layer above hardware, which |
@@ -1784,9 +1794,10 @@ static void dummy_timer(struct timer_list *t) | |||
1784 | /* Bus speed is 500000 bytes/ms, so use a little less */ | 1794 | /* Bus speed is 500000 bytes/ms, so use a little less */ |
1785 | total = 490000; | 1795 | total = 490000; |
1786 | break; | 1796 | break; |
1787 | default: | 1797 | default: /* Can't happen */ |
1788 | dev_err(dummy_dev(dum_hcd), "bogus device speed\n"); | 1798 | dev_err(dummy_dev(dum_hcd), "bogus device speed\n"); |
1789 | return; | 1799 | total = 0; |
1800 | break; | ||
1790 | } | 1801 | } |
1791 | 1802 | ||
1792 | /* FIXME if HZ != 1000 this will probably misbehave ... */ | 1803 | /* FIXME if HZ != 1000 this will probably misbehave ... */ |
@@ -1828,7 +1839,7 @@ restart: | |||
1828 | 1839 | ||
1829 | /* Used up this frame's bandwidth? */ | 1840 | /* Used up this frame's bandwidth? */ |
1830 | if (total <= 0) | 1841 | if (total <= 0) |
1831 | break; | 1842 | continue; |
1832 | 1843 | ||
1833 | /* find the gadget's ep for this request (if configured) */ | 1844 | /* find the gadget's ep for this request (if configured) */ |
1834 | address = usb_pipeendpoint (urb->pipe); | 1845 | address = usb_pipeendpoint (urb->pipe); |