Commit eab35c4e authored by Felipe Balbi's avatar Felipe Balbi

usb: gadget: fsl_udc_core: let udc-core manage gadget->dev

By simply setting a flag, we can drop some
boilerplate code.
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent c07d1b63
...@@ -2524,9 +2524,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev) ...@@ -2524,9 +2524,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
udc_controller->gadget.dev.release = fsl_udc_release; udc_controller->gadget.dev.release = fsl_udc_release;
udc_controller->gadget.dev.parent = &pdev->dev; udc_controller->gadget.dev.parent = &pdev->dev;
udc_controller->gadget.dev.of_node = pdev->dev.of_node; udc_controller->gadget.dev.of_node = pdev->dev.of_node;
ret = device_register(&udc_controller->gadget.dev); udc_controller->gadget.register_my_device = true;
if (ret < 0)
goto err_free_irq;
if (!IS_ERR_OR_NULL(udc_controller->transceiver)) if (!IS_ERR_OR_NULL(udc_controller->transceiver))
udc_controller->gadget.is_otg = 1; udc_controller->gadget.is_otg = 1;
...@@ -2559,7 +2557,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev) ...@@ -2559,7 +2557,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
DTD_ALIGNMENT, UDC_DMA_BOUNDARY); DTD_ALIGNMENT, UDC_DMA_BOUNDARY);
if (udc_controller->td_pool == NULL) { if (udc_controller->td_pool == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
goto err_unregister; goto err_free_irq;
} }
ret = usb_add_gadget_udc(&pdev->dev, &udc_controller->gadget); ret = usb_add_gadget_udc(&pdev->dev, &udc_controller->gadget);
...@@ -2571,8 +2569,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev) ...@@ -2571,8 +2569,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
err_del_udc: err_del_udc:
dma_pool_destroy(udc_controller->td_pool); dma_pool_destroy(udc_controller->td_pool);
err_unregister:
device_unregister(&udc_controller->gadget.dev);
err_free_irq: err_free_irq:
free_irq(udc_controller->irq, udc_controller); free_irq(udc_controller->irq, udc_controller);
err_iounmap: err_iounmap:
...@@ -2622,7 +2618,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev) ...@@ -2622,7 +2618,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
if (pdata->operating_mode == FSL_USB2_DR_DEVICE) if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
release_mem_region(res->start, resource_size(res)); release_mem_region(res->start, resource_size(res));
device_unregister(&udc_controller->gadget.dev);
/* free udc --wait for the release() finished */ /* free udc --wait for the release() finished */
wait_for_completion(&done); wait_for_completion(&done);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment