summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2013-04-16 14:36:12 +0800
committerPeter Chen <peter.chen@freescale.com>2013-04-24 14:08:44 +0800
commit69a9d0b4f530d956557b5f459d6c7f146faa6ae9 (patch)
tree1d08f4d104862e0add2ef201ba836a8f3a5d4fce
parent6c3dc00386f3053698366ea24dea0984e8838f7c (diff)
ENGR00258491-3 usb: fix clock unmatch problem after unload module
Move clock disable from MSL to driver Signed-off-by: Peter Chen <peter.chen@freescale.com>
-rwxr-xr-xdrivers/usb/gadget/arcotg_udc.c6
-rwxr-xr-xdrivers/usb/host/ehci-arc.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/drivers/usb/gadget/arcotg_udc.c b/drivers/usb/gadget/arcotg_udc.c
index c97eac3a6696..7429d4b13130 100755
--- a/drivers/usb/gadget/arcotg_udc.c
+++ b/drivers/usb/gadget/arcotg_udc.c
@@ -3269,6 +3269,8 @@ static int fsl_udc_remove(struct platform_device *pdev)
dr_wake_up_enable(udc_controller, false);
dr_discharge_line(pdata, true);
+
+ dr_clk_gate(false);
/* DR has been stopped in usb_gadget_unregister_driver() */
remove_proc_file();
@@ -3303,9 +3305,9 @@ static int fsl_udc_remove(struct platform_device *pdev)
device_unregister(&udc_controller->gadget.dev);
/* free udc --wait for the release() finished */
wait_for_completion(&done);
+
/*
- * do platform specific un-initialization:
- * release iomux pins, etc.
+ * do platform specific un-initialization
*/
if (pdata->exit)
pdata->exit(pdata->pdev);
diff --git a/drivers/usb/host/ehci-arc.c b/drivers/usb/host/ehci-arc.c
index af894a3d9c4e..f17f260033ac 100755
--- a/drivers/usb/host/ehci-arc.c
+++ b/drivers/usb/host/ehci-arc.c
@@ -372,9 +372,11 @@ static void usb_hcd_fsl_remove(struct usb_hcd *hcd,
if (pdata->xcvr_ops && pdata->xcvr_ops->set_vbus_power)
pdata->xcvr_ops->set_vbus_power(pdata->xcvr_ops, pdata, 0);
+ if (pdata->usb_clock_for_pm)
+ pdata->usb_clock_for_pm(false);
+
/*
- * do platform specific un-initialization:
- * release iomux pins clocks, etc.
+ * do platform specific un-initialization
*/
if (pdata->exit)
pdata->exit(pdata->pdev);