USB: Fix pxa27x_udc usb speed handling.
authorRobert Jarzmik <robert.jarzmik@free.fr>
Mon, 11 Aug 2008 16:28:13 +0000 (18:28 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 21 Aug 2008 17:26:33 +0000 (10:26 -0700)
The new composite framework revealed a weakness in the
pxa27x_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: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/gadget/pxa27x_udc.c

index a28513ecbe5bd3de7c675a6a7c9afb99246f63ec..7cbc78a6853d846689b000842cf264466a67dedc 100644 (file)
@@ -1622,7 +1622,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        struct pxa_udc *udc = the_controller;
        int retval;
 
-       if (!driver || driver->speed != USB_SPEED_FULL || !driver->bind
+       if (!driver || driver->speed < USB_SPEED_FULL || !driver->bind
                        || !driver->disconnect || !driver->setup)
                return -EINVAL;
        if (!udc)