OSDN Git Service

usb: dwc3: gadget: let udc-core manage gadget->dev
authorFelipe Balbi <balbi@ti.com>
Thu, 24 Jan 2013 12:56:26 +0000 (14:56 +0200)
committerFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 09:16:40 +0000 (11:16 +0200)
We don't need to register that device ourselves
if we simply set gadget->register_my_device.

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

index 82e160e..10bb161 100644 (file)
@@ -2488,8 +2488,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
                goto err3;
        }
 
-       dev_set_name(&dwc->gadget.dev, "gadget");
-
        dwc->gadget.ops                 = &dwc3_gadget_ops;
        dwc->gadget.max_speed           = USB_SPEED_SUPER;
        dwc->gadget.speed               = USB_SPEED_UNKNOWN;
@@ -2501,6 +2499,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
        dwc->gadget.dev.dma_parms       = dwc->dev->dma_parms;
        dwc->gadget.dev.dma_mask        = dwc->dev->dma_mask;
        dwc->gadget.dev.release         = dwc3_gadget_release;
+       dwc->gadget.register_my_device  = true;
        dwc->gadget.name                = "dwc3-gadget";
 
        /*
@@ -2544,24 +2543,14 @@ int dwc3_gadget_init(struct dwc3 *dwc)
                dwc3_gadget_usb3_phy_suspend(dwc, false);
        }
 
-       ret = device_register(&dwc->gadget.dev);
-       if (ret) {
-               dev_err(dwc->dev, "failed to register gadget device\n");
-               put_device(&dwc->gadget.dev);
-               goto err6;
-       }
-
        ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
        if (ret) {
                dev_err(dwc->dev, "failed to register udc\n");
-               goto err7;
+               goto err6;
        }
 
        return 0;
 
-err7:
-       device_unregister(&dwc->gadget.dev);
-
 err6:
        dwc3_writel(dwc->regs, DWC3_DEVTEN, 0x00);
        free_irq(irq, dwc);
@@ -2610,6 +2599,4 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
 
        dma_free_coherent(dwc->dev, sizeof(*dwc->ctrl_req),
                        dwc->ctrl_req, dwc->ctrl_req_addr);
-
-       device_unregister(&dwc->gadget.dev);
 }