Commit c0010eb5 authored by Viresh Kumar's avatar Viresh Kumar Committed by David Woodhouse

mtd: spear_smi: Add clk_{un}prepare() support

clk_{un}prepare is mandatory for platforms using common clock framework. Since
this driver is used by SPEAr platform, which supports common clock framework,
add clk_{un}prepare() support for it.
Signed-off-by: default avatarViresh Kumar <viresh.kumar@st.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 47d0505b
...@@ -990,9 +990,9 @@ static int __devinit spear_smi_probe(struct platform_device *pdev) ...@@ -990,9 +990,9 @@ static int __devinit spear_smi_probe(struct platform_device *pdev)
goto err_clk; goto err_clk;
} }
ret = clk_enable(dev->clk); ret = clk_prepare_enable(dev->clk);
if (ret) if (ret)
goto err_clk_enable; goto err_clk_prepare_enable;
ret = request_irq(irq, spear_smi_int_handler, 0, pdev->name, dev); ret = request_irq(irq, spear_smi_int_handler, 0, pdev->name, dev);
if (ret) { if (ret) {
...@@ -1020,8 +1020,8 @@ static int __devinit spear_smi_probe(struct platform_device *pdev) ...@@ -1020,8 +1020,8 @@ static int __devinit spear_smi_probe(struct platform_device *pdev)
free_irq(irq, dev); free_irq(irq, dev);
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
err_irq: err_irq:
clk_disable(dev->clk); clk_disable_unprepare(dev->clk);
err_clk_enable: err_clk_prepare_enable:
clk_put(dev->clk); clk_put(dev->clk);
err_clk: err_clk:
iounmap(dev->io_base); iounmap(dev->io_base);
...@@ -1074,7 +1074,7 @@ static int __devexit spear_smi_remove(struct platform_device *pdev) ...@@ -1074,7 +1074,7 @@ static int __devexit spear_smi_remove(struct platform_device *pdev)
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
free_irq(irq, dev); free_irq(irq, dev);
clk_disable(dev->clk); clk_disable_unprepare(dev->clk);
clk_put(dev->clk); clk_put(dev->clk);
iounmap(dev->io_base); iounmap(dev->io_base);
kfree(dev); kfree(dev);
...@@ -1091,7 +1091,7 @@ int spear_smi_suspend(struct platform_device *pdev, pm_message_t state) ...@@ -1091,7 +1091,7 @@ int spear_smi_suspend(struct platform_device *pdev, pm_message_t state)
struct spear_smi *dev = platform_get_drvdata(pdev); struct spear_smi *dev = platform_get_drvdata(pdev);
if (dev && dev->clk) if (dev && dev->clk)
clk_disable(dev->clk); clk_disable_unprepare(dev->clk);
return 0; return 0;
} }
...@@ -1102,7 +1102,7 @@ int spear_smi_resume(struct platform_device *pdev) ...@@ -1102,7 +1102,7 @@ int spear_smi_resume(struct platform_device *pdev)
int ret = -EPERM; int ret = -EPERM;
if (dev && dev->clk) if (dev && dev->clk)
ret = clk_enable(dev->clk); ret = clk_prepare_enable(dev->clk);
if (!ret) if (!ret)
spear_smi_hw_init(dev); spear_smi_hw_init(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment