Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
[pandora-kernel.git] / drivers / usb / gadget / fsl_udc_core.c
index d933e63..4c55eda 100644 (file)
@@ -1759,7 +1759,8 @@ static irqreturn_t fsl_udc_irq(int irq, void *_udc)
  * Hook to gadget drivers
  * Called by initialization code of gadget drivers
 *----------------------------------------------------------------*/
-int usb_gadget_register_driver(struct usb_gadget_driver *driver)
+int usb_gadget_probe_driver(struct usb_gadget_driver *driver,
+               int (*bind)(struct usb_gadget *))
 {
        int retval = -ENODEV;
        unsigned long flags = 0;
@@ -1769,8 +1770,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
 
        if (!driver || (driver->speed != USB_SPEED_FULL
                                && driver->speed != USB_SPEED_HIGH)
-                       || !driver->bind || !driver->disconnect
-                       || !driver->setup)
+                       || !bind || !driver->disconnect || !driver->setup)
                return -EINVAL;
 
        if (udc_controller->driver)
@@ -1786,7 +1786,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        spin_unlock_irqrestore(&udc_controller->lock, flags);
 
        /* bind udc driver to gadget driver */
-       retval = driver->bind(&udc_controller->gadget);
+       retval = bind(&udc_controller->gadget);
        if (retval) {
                VDBG("bind to %s --> %d", driver->driver.name, retval);
                udc_controller->gadget.dev.driver = NULL;
@@ -1808,7 +1808,7 @@ out:
                       retval);
        return retval;
 }
-EXPORT_SYMBOL(usb_gadget_register_driver);
+EXPORT_SYMBOL(usb_gadget_probe_driver);
 
 /* Disconnect from gadget driver */
 int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)