From e6f40b1801b28c3578a2525f643cebd70a9f2f73 Mon Sep 17 00:00:00 2001 From: Kishon Vijay Abraham I Date: Fri, 25 Jan 2013 08:30:45 +0530 Subject: [PATCH] --- yaml --- r: 354613 b: refs/heads/master c: 94c6a436f606836dcb1ba0156757cea7f17a2102 h: refs/heads/master i: 354611: dbb3d69c9f2838f7619770a553e1085c4db6c7c1 v: v3 --- [refs] | 2 +- trunk/drivers/usb/dwc3/dwc3-omap.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6c277689f7e6..7f142ea9ec6b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fe29db8fb22f5aa67af4bf30b85a0451c989a88b +refs/heads/master: 94c6a436f606836dcb1ba0156757cea7f17a2102 diff --git a/trunk/drivers/usb/dwc3/dwc3-omap.c b/trunk/drivers/usb/dwc3/dwc3-omap.c index f31867fd2574..1d03a8acffab 100644 --- a/trunk/drivers/usb/dwc3/dwc3-omap.c +++ b/trunk/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; }