usb: dwc3: omap: fix ordering for runtime pm calls
authorFelipe Balbi <balbi@ti.com>
Wed, 3 Sep 2014 21:42:57 +0000 (16:42 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Oct 2014 21:54:10 +0000 (14:54 -0700)
commit 81a60b7f5c143ab3cdcd9943c9b4b7c63c32fc31 upstream.

we don't to gate clocks until our children are
done with their remove path.

Fixes: af310e9 (usb: dwc3: omap: use runtime API's to enable clocks)
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/dwc3-omap.c

index 34638b92500d0606e1718a3e6ae43a7d3d2d0b46..cb5f8c44eb3a75106e5e94996ee98a5a5eaf9aee 100644 (file)
@@ -395,9 +395,9 @@ static int dwc3_omap_remove(struct platform_device *pdev)
        struct dwc3_omap        *omap = platform_get_drvdata(pdev);
 
        dwc3_omap_disable_irqs(omap);
+       device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core);
        pm_runtime_put_sync(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
-       device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core);
 
        return 0;
 }