]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/gadget/fsl_udc_core.c
Merge tag 'v2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / usb / gadget / fsl_udc_core.c
index 08a9a62a39e34910ecbcb3fdb8381c044fa851e4..4c55eda4bd200ab7cb81b53df76cb9dcb351286c 100644 (file)
@@ -287,8 +287,6 @@ static void dr_controller_run(struct fsl_udc *udc)
        temp = fsl_readl(&dr_regs->usbcmd);
        temp |= USB_CMD_RUN_STOP;
        fsl_writel(temp, &dr_regs->usbcmd);
-
-       return;
 }
 
 static void dr_controller_stop(struct fsl_udc *udc)
@@ -308,8 +306,6 @@ static void dr_controller_stop(struct fsl_udc *udc)
        tmp = fsl_readl(&dr_regs->usbcmd);
        tmp &= ~USB_CMD_RUN_STOP;
        fsl_writel(tmp, &dr_regs->usbcmd);
-
-       return;
 }
 
 static void dr_ep_setup(unsigned char ep_num, unsigned char dir,
@@ -416,8 +412,6 @@ static void struct_ep_qh_setup(struct fsl_udc *udc, unsigned char ep_num,
        p_QH->max_pkt_length = cpu_to_le32(tmp);
        p_QH->next_dtd_ptr = 1;
        p_QH->size_ioc_int_sts = 0;
-
-       return;
 }
 
 /* Setup qh structure and ep register for ep0. */
@@ -1765,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;
@@ -1775,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)
@@ -1792,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;
@@ -1814,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)