USB: Fix s3c2410_udc usb speed handling
The new composite framework revealed a weakness in the s3c2410_udc driver gadget register function. Instead of checking if speed asked for was USB_LOW_SPEED upon usb_gadget_register() to deny service, it checked only for USB_FULL_SPEED, thus denying service to usb high speed capable gadgets (like g_ether). Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
36e893d25a
commit
f9e9cff613
|
@ -1651,7 +1651,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
|
|||
return -EBUSY;
|
||||
|
||||
if (!driver->bind || !driver->setup
|
||||
|| driver->speed != USB_SPEED_FULL) {
|
||||
|| driver->speed < USB_SPEED_FULL) {
|
||||
printk(KERN_ERR "Invalid driver: bind %p setup %p speed %d\n",
|
||||
driver->bind, driver->setup, driver->speed);
|
||||
return -EINVAL;
|
||||
|
|
Loading…
Reference in New Issue