Merge remote-tracking branch 'asoc/fix/cs42l52' into asoc-linus
[firefly-linux-kernel-4.4.55.git] / drivers / usb / gadget / omap_udc.c
index f8445653577fbb107256576fec5481b4b94f758f..b8ed74a823cbb41c6f585fe422483905fc2567ea 100644 (file)
@@ -2067,7 +2067,6 @@ static int omap_udc_start(struct usb_gadget *g,
        /* hook up the driver */
        driver->driver.bus = NULL;
        udc->driver = driver;
-       udc->gadget.dev.driver = &driver->driver;
        spin_unlock_irqrestore(&udc->lock, flags);
 
        if (udc->dc_clk != NULL)
@@ -2083,7 +2082,6 @@ static int omap_udc_start(struct usb_gadget *g,
                        ERR("can't bind to transceiver\n");
                        if (driver->unbind) {
                                driver->unbind(&udc->gadget);
-                               udc->gadget.dev.driver = NULL;
                                udc->driver = NULL;
                        }
                        goto done;
@@ -2129,7 +2127,6 @@ static int omap_udc_stop(struct usb_gadget *g,
        udc_quiesce(udc);
        spin_unlock_irqrestore(&udc->lock, flags);
 
-       udc->gadget.dev.driver = NULL;
        udc->driver = NULL;
 
        if (udc->dc_clk != NULL)
@@ -2631,14 +2628,6 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
        udc->gadget.speed = USB_SPEED_UNKNOWN;
        udc->gadget.max_speed = USB_SPEED_FULL;
        udc->gadget.name = driver_name;
-
-       device_initialize(&udc->gadget.dev);
-       dev_set_name(&udc->gadget.dev, "gadget");
-       udc->gadget.dev.release = omap_udc_release;
-       udc->gadget.dev.parent = &odev->dev;
-       if (use_dma)
-               udc->gadget.dev.dma_mask = odev->dev.dma_mask;
-
        udc->transceiver = xceiv;
 
        /* ep0 is special; put it right after the SETUP buffer */
@@ -2912,14 +2901,13 @@ bad_on_1710:
        }
 
        create_proc_file();
-       status = device_add(&udc->gadget.dev);
+       status = usb_add_gadget_udc_release(&pdev->dev, &udc->gadget,
+                       omap_udc_release);
        if (status)
                goto cleanup4;
 
-       status = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
-       if (!status)
-               return status;
-       /* If fail, fall through */
+       return 0;
+
 cleanup4:
        remove_proc_file();
 
@@ -2990,7 +2978,6 @@ static int omap_udc_remove(struct platform_device *pdev)
        release_mem_region(pdev->resource[0].start,
                        pdev->resource[0].end - pdev->resource[0].start + 1);
 
-       device_unregister(&udc->gadget.dev);
        wait_for_completion(&done);
 
        return 0;