aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/fsl_qe_udc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/fsl_qe_udc.c')
-rw-r--r--drivers/usb/gadget/fsl_qe_udc.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 034477ce77c6..9a7ee3347e4d 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2296,7 +2296,6 @@ static int fsl_qe_start(struct usb_gadget *gadget,
2296 driver->driver.bus = NULL; 2296 driver->driver.bus = NULL;
2297 /* hook up the driver */ 2297 /* hook up the driver */
2298 udc->driver = driver; 2298 udc->driver = driver;
2299 udc->gadget.dev.driver = &driver->driver;
2300 udc->gadget.speed = driver->max_speed; 2299 udc->gadget.speed = driver->max_speed;
2301 2300
2302 /* Enable IRQ reg and Set usbcmd reg EN bit */ 2301 /* Enable IRQ reg and Set usbcmd reg EN bit */
@@ -2338,7 +2337,6 @@ static int fsl_qe_stop(struct usb_gadget *gadget,
2338 nuke(loop_ep, -ESHUTDOWN); 2337 nuke(loop_ep, -ESHUTDOWN);
2339 spin_unlock_irqrestore(&udc->lock, flags); 2338 spin_unlock_irqrestore(&udc->lock, flags);
2340 2339
2341 udc->gadget.dev.driver = NULL;
2342 udc->driver = NULL; 2340 udc->driver = NULL;
2343 2341
2344 dev_info(udc->dev, "unregistered gadget driver '%s'\r\n", 2342 dev_info(udc->dev, "unregistered gadget driver '%s'\r\n",
@@ -2523,12 +2521,6 @@ static int qe_udc_probe(struct platform_device *ofdev)
2523 2521
2524 /* name: Identifies the controller hardware type. */ 2522 /* name: Identifies the controller hardware type. */
2525 udc->gadget.name = driver_name; 2523 udc->gadget.name = driver_name;
2526
2527 device_initialize(&udc->gadget.dev);
2528
2529 dev_set_name(&udc->gadget.dev, "gadget");
2530
2531 udc->gadget.dev.release = qe_udc_release;
2532 udc->gadget.dev.parent = &ofdev->dev; 2524 udc->gadget.dev.parent = &ofdev->dev;
2533 2525
2534 /* initialize qe_ep struct */ 2526 /* initialize qe_ep struct */
@@ -2592,22 +2584,17 @@ static int qe_udc_probe(struct platform_device *ofdev)
2592 goto err5; 2584 goto err5;
2593 } 2585 }
2594 2586
2595 ret = device_add(&udc->gadget.dev); 2587 ret = usb_add_gadget_udc_release(&ofdev->dev, &udc->gadget,
2588 qe_udc_release);
2596 if (ret) 2589 if (ret)
2597 goto err6; 2590 goto err6;
2598 2591
2599 ret = usb_add_gadget_udc(&ofdev->dev, &udc->gadget);
2600 if (ret)
2601 goto err7;
2602
2603 dev_set_drvdata(&ofdev->dev, udc); 2592 dev_set_drvdata(&ofdev->dev, udc);
2604 dev_info(udc->dev, 2593 dev_info(udc->dev,
2605 "%s USB controller initialized as device\n", 2594 "%s USB controller initialized as device\n",
2606 (udc->soc_type == PORT_QE) ? "QE" : "CPM"); 2595 (udc->soc_type == PORT_QE) ? "QE" : "CPM");
2607 return 0; 2596 return 0;
2608 2597
2609err7:
2610 device_unregister(&udc->gadget.dev);
2611err6: 2598err6:
2612 free_irq(udc->usb_irq, udc); 2599 free_irq(udc->usb_irq, udc);
2613err5: 2600err5:
@@ -2702,7 +2689,6 @@ static int qe_udc_remove(struct platform_device *ofdev)
2702 2689
2703 iounmap(udc->usb_regs); 2690 iounmap(udc->usb_regs);
2704 2691
2705 device_unregister(&udc->gadget.dev);
2706 /* wait for release() of gadget.dev to free udc */ 2692 /* wait for release() of gadget.dev to free udc */
2707 wait_for_completion(&done); 2693 wait_for_completion(&done);
2708 2694