]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/gadget/imx_udc.c
Merge branch 'master' into tk71
[mv-sheeva.git] / drivers / usb / gadget / imx_udc.c
index e743122fcd93e0f74ec23f8b1f0efa050d9a5f10..5408186afc35c41dee81ff8afb7bcc55163a68a4 100644 (file)
@@ -1191,13 +1191,17 @@ static irqreturn_t imx_udc_ctrl_irq(int irq, void *dev)
        return IRQ_HANDLED;
 }
 
+#ifndef MX1_INT_USBD0
+#define MX1_INT_USBD0 MX1_USBD_INT0
+#endif
+
 static irqreturn_t imx_udc_bulk_irq(int irq, void *dev)
 {
        struct imx_udc_struct *imx_usb = dev;
-       struct imx_ep_struct *imx_ep = &imx_usb->imx_ep[irq - USBD_INT0];
+       struct imx_ep_struct *imx_ep = &imx_usb->imx_ep[irq - MX1_INT_USBD0];
        int intr = __raw_readl(imx_usb->base + USB_EP_INTR(EP_NO(imx_ep)));
 
-       dump_ep_intr(__func__, irq - USBD_INT0, intr, imx_usb->dev);
+       dump_ep_intr(__func__, irq - MX1_INT_USBD0, intr, imx_usb->dev);
 
        if (!imx_usb->driver) {
                __raw_writel(intr, imx_usb->base + USB_EP_INTR(EP_NO(imx_ep)));
@@ -1316,17 +1320,18 @@ static struct imx_udc_struct controller = {
 };
 
 /*******************************************************************************
- * USB gadged driver functions
+ * USB gadget driver functions
  *******************************************************************************
  */
-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 imx_udc_struct *imx_usb = &controller;
        int retval;
 
        if (!driver
                || driver->speed < USB_SPEED_FULL
-               || !driver->bind
+               || !bind
                || !driver->disconnect
                || !driver->setup)
                        return -EINVAL;
@@ -1342,7 +1347,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        retval = device_add(&imx_usb->gadget.dev);
        if (retval)
                goto fail;
-       retval = driver->bind(&imx_usb->gadget);
+       retval = bind(&imx_usb->gadget);
        if (retval) {
                D_ERR(imx_usb->dev, "<%s> bind to driver %s --> error %d\n",
                        __func__, driver->driver.name, retval);
@@ -1362,7 +1367,7 @@ fail:
        imx_usb->gadget.dev.driver = NULL;
        return retval;
 }
-EXPORT_SYMBOL(usb_gadget_register_driver);
+EXPORT_SYMBOL(usb_gadget_probe_driver);
 
 int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
 {