OSDN Git Service

mfd: omap-usb: prepare/unprepare clock while enable/disable
authorRoger Quadros <rogerq@ti.com>
Tue, 15 Oct 2013 12:30:34 +0000 (15:30 +0300)
committerLee Jones <lee.jones@linaro.org>
Wed, 23 Oct 2013 15:22:25 +0000 (16:22 +0100)
This should fix the following warning at boot on OMAP5 uEVM
[    8.783155] WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:883 __clk_enable+0x94/0xa4()

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/omap-usb-host.c
drivers/mfd/omap-usb-tll.c

index 1b65ffe..142650f 100644 (file)
@@ -328,13 +328,13 @@ static int usbhs_runtime_resume(struct device *dev)
        omap_tll_enable(pdata);
 
        if (!IS_ERR(omap->ehci_logic_fck))
-               clk_enable(omap->ehci_logic_fck);
+               clk_prepare_enable(omap->ehci_logic_fck);
 
        for (i = 0; i < omap->nports; i++) {
                switch (pdata->port_mode[i]) {
                case OMAP_EHCI_PORT_MODE_HSIC:
                        if (!IS_ERR(omap->hsic60m_clk[i])) {
-                               r = clk_enable(omap->hsic60m_clk[i]);
+                               r = clk_prepare_enable(omap->hsic60m_clk[i]);
                                if (r) {
                                        dev_err(dev,
                                         "Can't enable port %d hsic60m clk:%d\n",
@@ -343,7 +343,7 @@ static int usbhs_runtime_resume(struct device *dev)
                        }
 
                        if (!IS_ERR(omap->hsic480m_clk[i])) {
-                               r = clk_enable(omap->hsic480m_clk[i]);
+                               r = clk_prepare_enable(omap->hsic480m_clk[i]);
                                if (r) {
                                        dev_err(dev,
                                         "Can't enable port %d hsic480m clk:%d\n",
@@ -354,7 +354,7 @@ static int usbhs_runtime_resume(struct device *dev)
 
                case OMAP_EHCI_PORT_MODE_TLL:
                        if (!IS_ERR(omap->utmi_clk[i])) {
-                               r = clk_enable(omap->utmi_clk[i]);
+                               r = clk_prepare_enable(omap->utmi_clk[i]);
                                if (r) {
                                        dev_err(dev,
                                         "Can't enable port %d clk : %d\n",
@@ -382,15 +382,15 @@ static int usbhs_runtime_suspend(struct device *dev)
                switch (pdata->port_mode[i]) {
                case OMAP_EHCI_PORT_MODE_HSIC:
                        if (!IS_ERR(omap->hsic60m_clk[i]))
-                               clk_disable(omap->hsic60m_clk[i]);
+                               clk_disable_unprepare(omap->hsic60m_clk[i]);
 
                        if (!IS_ERR(omap->hsic480m_clk[i]))
-                               clk_disable(omap->hsic480m_clk[i]);
+                               clk_disable_unprepare(omap->hsic480m_clk[i]);
                /* Fall through as utmi_clks were used in HSIC mode */
 
                case OMAP_EHCI_PORT_MODE_TLL:
                        if (!IS_ERR(omap->utmi_clk[i]))
-                               clk_disable(omap->utmi_clk[i]);
+                               clk_disable_unprepare(omap->utmi_clk[i]);
                        break;
                default:
                        break;
@@ -398,7 +398,7 @@ static int usbhs_runtime_suspend(struct device *dev)
        }
 
        if (!IS_ERR(omap->ehci_logic_fck))
-               clk_disable(omap->ehci_logic_fck);
+               clk_disable_unprepare(omap->ehci_logic_fck);
 
        omap_tll_disable(pdata);
 
index b8f6401..0d946ae 100644 (file)
@@ -429,7 +429,7 @@ int omap_tll_enable(struct usbhs_omap_platform_data *pdata)
                        if (IS_ERR(tll->ch_clk[i]))
                                continue;
 
-                       r = clk_enable(tll->ch_clk[i]);
+                       r = clk_prepare_enable(tll->ch_clk[i]);
                        if (r) {
                                dev_err(tll_dev,
                                 "Error enabling ch %d clock: %d\n", i, r);
@@ -460,7 +460,7 @@ int omap_tll_disable(struct usbhs_omap_platform_data *pdata)
        for (i = 0; i < tll->nch; i++) {
                if (omap_usb_mode_needs_tll(pdata->port_mode[i])) {
                        if (!IS_ERR(tll->ch_clk[i]))
-                               clk_disable(tll->ch_clk[i]);
+                               clk_disable_unprepare(tll->ch_clk[i]);
                }
        }