diff options
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/dwc3/dwc3-omap.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index f31867fd257..1d03a8acffa 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -262,6 +262,15 @@ static irqreturn_t dwc3_omap_interrupt(int irq, void *_omap)  	return IRQ_HANDLED;  } +static int dwc3_omap_remove_core(struct device *dev, void *c) +{ +	struct platform_device *pdev = to_platform_device(dev); + +	platform_device_unregister(pdev); + +	return 0; +} +  static int dwc3_omap_probe(struct platform_device *pdev)  {  	struct dwc3_omap_data	*pdata = pdev->dev.platform_data; @@ -425,9 +434,10 @@ static int dwc3_omap_remove(struct platform_device *pdev)  {  	struct dwc3_omap	*omap = platform_get_drvdata(pdev); -	platform_device_unregister(omap->dwc3);  	platform_device_unregister(omap->usb2_phy);  	platform_device_unregister(omap->usb3_phy); +	device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core); +  	return 0;  }  |