]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/gadget/ci13xxx_udc.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 / ci13xxx_udc.c
index 699695128e33de185f743afa8f26ed51f38f9295..98b36fc88c77d298bf4f8efb4c9dc2f773f1931a 100644 (file)
@@ -2340,12 +2340,15 @@ static const struct usb_ep_ops usb_ep_ops = {
 static const struct usb_gadget_ops usb_gadget_ops;
 
 /**
- * usb_gadget_register_driver: register a gadget driver
+ * usb_gadget_probe_driver: register a gadget driver
+ * @driver: the driver being registered
+ * @bind: the driver's bind callback
  *
- * Check usb_gadget_register_driver() at "usb_gadget.h" for details
- * Interrupts are enabled here
+ * Check usb_gadget_probe_driver() at <linux/usb/gadget.h> for details.
+ * Interrupts are enabled here.
  */
-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 *))
 {
        struct ci13xxx *udc = _udc;
        unsigned long i, k, flags;
@@ -2354,7 +2357,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        trace("%p", driver);
 
        if (driver             == NULL ||
-           driver->bind       == NULL ||
+           bind               == NULL ||
            driver->unbind     == NULL ||
            driver->setup      == NULL ||
            driver->disconnect == NULL ||
@@ -2430,7 +2433,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        udc->gadget.dev.driver = &driver->driver;
 
        spin_unlock_irqrestore(udc->lock, flags);
-       retval = driver->bind(&udc->gadget);                /* MAY SLEEP */
+       retval = bind(&udc->gadget);                /* MAY SLEEP */
        spin_lock_irqsave(udc->lock, flags);
 
        if (retval) {
@@ -2447,7 +2450,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
                usb_gadget_unregister_driver(driver);
        return retval;
 }
-EXPORT_SYMBOL(usb_gadget_register_driver);
+EXPORT_SYMBOL(usb_gadget_probe_driver);
 
 /**
  * usb_gadget_unregister_driver: unregister a gadget driver
@@ -2462,7 +2465,6 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
        trace("%p", driver);
 
        if (driver             == NULL ||
-           driver->bind       == NULL ||
            driver->unbind     == NULL ||
            driver->setup      == NULL ||
            driver->disconnect == NULL ||