diff options
Diffstat (limited to 'drivers/usb/gadget/fsl_qe_udc.c')
-rw-r--r-- | drivers/usb/gadget/fsl_qe_udc.c | 18 |
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 | ||
2609 | err7: | ||
2610 | device_unregister(&udc->gadget.dev); | ||
2611 | err6: | 2598 | err6: |
2612 | free_irq(udc->usb_irq, udc); | 2599 | free_irq(udc->usb_irq, udc); |
2613 | err5: | 2600 | err5: |
@@ -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 | ||