|
@@ -994,7 +994,7 @@ static int __devinit dm644x_ccdc_probe(struct platform_device *pdev)
|
|
|
status = PTR_ERR(ccdc_cfg.mclk);
|
|
|
goto fail_nomap;
|
|
|
}
|
|
|
- if (clk_enable(ccdc_cfg.mclk)) {
|
|
|
+ if (clk_prepare_enable(ccdc_cfg.mclk)) {
|
|
|
status = -ENODEV;
|
|
|
goto fail_mclk;
|
|
|
}
|
|
@@ -1005,7 +1005,7 @@ static int __devinit dm644x_ccdc_probe(struct platform_device *pdev)
|
|
|
status = PTR_ERR(ccdc_cfg.sclk);
|
|
|
goto fail_mclk;
|
|
|
}
|
|
|
- if (clk_enable(ccdc_cfg.sclk)) {
|
|
|
+ if (clk_prepare_enable(ccdc_cfg.sclk)) {
|
|
|
status = -ENODEV;
|
|
|
goto fail_sclk;
|
|
|
}
|
|
@@ -1013,8 +1013,10 @@ static int __devinit dm644x_ccdc_probe(struct platform_device *pdev)
|
|
|
printk(KERN_NOTICE "%s is registered with vpfe.\n", ccdc_hw_dev.name);
|
|
|
return 0;
|
|
|
fail_sclk:
|
|
|
+ clk_disable_unprepare(ccdc_cfg.sclk);
|
|
|
clk_put(ccdc_cfg.sclk);
|
|
|
fail_mclk:
|
|
|
+ clk_disable_unprepare(ccdc_cfg.mclk);
|
|
|
clk_put(ccdc_cfg.mclk);
|
|
|
fail_nomap:
|
|
|
iounmap(ccdc_cfg.base_addr);
|
|
@@ -1029,6 +1031,8 @@ static int dm644x_ccdc_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
struct resource *res;
|
|
|
|
|
|
+ clk_disable_unprepare(ccdc_cfg.mclk);
|
|
|
+ clk_disable_unprepare(ccdc_cfg.sclk);
|
|
|
clk_put(ccdc_cfg.mclk);
|
|
|
clk_put(ccdc_cfg.sclk);
|
|
|
iounmap(ccdc_cfg.base_addr);
|
|
@@ -1046,8 +1050,8 @@ static int dm644x_ccdc_suspend(struct device *dev)
|
|
|
/* Disable CCDC */
|
|
|
ccdc_enable(0);
|
|
|
/* Disable both master and slave clock */
|
|
|
- clk_disable(ccdc_cfg.mclk);
|
|
|
- clk_disable(ccdc_cfg.sclk);
|
|
|
+ clk_disable_unprepare(ccdc_cfg.mclk);
|
|
|
+ clk_disable_unprepare(ccdc_cfg.sclk);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -1055,8 +1059,8 @@ static int dm644x_ccdc_suspend(struct device *dev)
|
|
|
static int dm644x_ccdc_resume(struct device *dev)
|
|
|
{
|
|
|
/* Enable both master and slave clock */
|
|
|
- clk_enable(ccdc_cfg.mclk);
|
|
|
- clk_enable(ccdc_cfg.sclk);
|
|
|
+ clk_prepare_enable(ccdc_cfg.mclk);
|
|
|
+ clk_prepare_enable(ccdc_cfg.sclk);
|
|
|
/* Restore CCDC context */
|
|
|
ccdc_restore_context();
|
|
|
|