|
@@ -1069,8 +1069,12 @@ static inline void usb_gadget_udc_stop(struct usb_udc *udc)
|
|
|
static inline void usb_gadget_udc_set_speed(struct usb_udc *udc,
|
|
|
enum usb_device_speed speed)
|
|
|
{
|
|
|
- if (udc->gadget->ops->udc_set_speed)
|
|
|
- udc->gadget->ops->udc_set_speed(udc->gadget, speed);
|
|
|
+ if (udc->gadget->ops->udc_set_speed) {
|
|
|
+ enum usb_device_speed s;
|
|
|
+
|
|
|
+ s = min(speed, udc->gadget->max_speed);
|
|
|
+ udc->gadget->ops->udc_set_speed(udc->gadget, s);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|