]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/usb/gadget/omap_udc.c
Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind...
[net-next-2.6.git] / drivers / usb / gadget / omap_udc.c
index 7f472a57490e0ee0087c18efe68e5a72c098afa6..cb5cd422f3f513a163d606fde97f0f2f646f48a8 100644 (file)
@@ -2101,7 +2101,8 @@ static inline int machine_without_vbus_sense(void)
                );
 }
 
-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             status = -ENODEV;
        struct omap_ep  *ep;
@@ -2113,8 +2114,7 @@ int usb_gadget_register_driver (struct usb_gadget_driver *driver)
        if (!driver
                        // FIXME if otg, check:  driver->is_otg
                        || driver->speed < USB_SPEED_FULL
-                       || !driver->bind
-                       || !driver->setup)
+                       || !bind || !driver->setup)
                return -EINVAL;
 
        spin_lock_irqsave(&udc->lock, flags);
@@ -2144,7 +2144,7 @@ int usb_gadget_register_driver (struct usb_gadget_driver *driver)
        if (udc->dc_clk != NULL)
                omap_udc_enable_clock(1);
 
-       status = driver->bind (&udc->gadget);
+       status = bind(&udc->gadget);
        if (status) {
                DBG("bind to %s --> %d\n", driver->driver.name, status);
                udc->gadget.dev.driver = NULL;
@@ -2185,7 +2185,7 @@ done:
                omap_udc_enable_clock(0);
        return status;
 }
-EXPORT_SYMBOL(usb_gadget_register_driver);
+EXPORT_SYMBOL(usb_gadget_probe_driver);
 
 int usb_gadget_unregister_driver (struct usb_gadget_driver *driver)
 {