]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
usb: gadget: fsl_udc_core: let udc-core manage gadget->dev
authorFelipe Balbi <balbi@ti.com>
Thu, 24 Jan 2013 14:13:20 +0000 (16:13 +0200)
committerFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 09:16:44 +0000 (11:16 +0200)
By simply setting a flag, we can drop some
boilerplate code.

Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/fsl_udc_core.c

index 04d5fef1440cf591d923b88e0099473610c53ef1..9140a2daad873d935723c9203b57c004f3640538 100644 (file)
@@ -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.parent = &pdev->dev;
        udc_controller->gadget.dev.of_node = pdev->dev.of_node;
-       ret = device_register(&udc_controller->gadget.dev);
-       if (ret < 0)
-               goto err_free_irq;
+       udc_controller->gadget.register_my_device = true;
 
        if (!IS_ERR_OR_NULL(udc_controller->transceiver))
                udc_controller->gadget.is_otg = 1;
@@ -2559,7 +2557,7 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
                        DTD_ALIGNMENT, UDC_DMA_BOUNDARY);
        if (udc_controller->td_pool == NULL) {
                ret = -ENOMEM;
-               goto err_unregister;
+               goto err_free_irq;
        }
 
        ret = usb_add_gadget_udc(&pdev->dev, &udc_controller->gadget);
@@ -2571,8 +2569,6 @@ static int __init fsl_udc_probe(struct platform_device *pdev)
 
 err_del_udc:
        dma_pool_destroy(udc_controller->td_pool);
-err_unregister:
-       device_unregister(&udc_controller->gadget.dev);
 err_free_irq:
        free_irq(udc_controller->irq, udc_controller);
 err_iounmap:
@@ -2622,7 +2618,6 @@ static int __exit fsl_udc_remove(struct platform_device *pdev)
        if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
                release_mem_region(res->start, resource_size(res));
 
-       device_unregister(&udc_controller->gadget.dev);
        /* free udc --wait for the release() finished */
        wait_for_completion(&done);