summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2013-03-22 13:46:23 +0800
committerPeter Chen <peter.chen@freescale.com>2013-03-22 16:34:48 +0800
commit0c6379a125419b30ac828c05649167dac50e5ace (patch)
treec255aa8f83dde6bcc2c88227adf512cf9cdb951b /arch
parentf1a46badc1762f7b1822ff98266fe69016808e1f (diff)
ENGR00255484-3 msl: usb: add clock deinit at fail path
If not, the clocks usage will be mismatch Signed-off-by: Peter Chen <peter.chen@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/usb_dr.c4
-rw-r--r--arch/arm/mach-mx6/usb_h1.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/usb_dr.c b/arch/arm/mach-mx6/usb_dr.c
index 7c8ef2f16447..8fb850397c10 100644
--- a/arch/arm/mach-mx6/usb_dr.c
+++ b/arch/arm/mach-mx6/usb_dr.c
@@ -144,6 +144,10 @@ static int usbotg_init_ext(struct platform_device *pdev)
ret = usbotg_init(pdev);
if (ret) {
+ clk_disable(usb_oh3_clk);
+ clk_put(usb_oh3_clk);
+ clk_disable(usb_phy1_clk);
+ clk_put(usb_phy1_clk);
printk(KERN_ERR "otg init fails......\n");
return ret;
}
diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c
index d983e2870045..d4b7001a111c 100644
--- a/arch/arm/mach-mx6/usb_h1.c
+++ b/arch/arm/mach-mx6/usb_h1.c
@@ -148,6 +148,8 @@ static int fsl_usb_host_init_ext(struct platform_device *pdev)
ret = fsl_usb_host_init(pdev);
if (ret) {
printk(KERN_ERR "host1 init fails......\n");
+ clk_disable(usb_oh3_clk);
+ clk_put(usb_oh3_clk);
return ret;
}
usbh1_internal_phy_clock_gate(true);