Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f5a5e62 authored by Murali Karicheri's avatar Murali Karicheri Committed by Mauro Carvalho Chehab
Browse files

[media] media:davinci: clk - {prepare/unprepare} for common clk



As a first step towards migrating davinci platforms to use common clock
framework, replace all instances of clk_enable() with clk_prepare_enable()
and clk_disable() with clk_disable_unprepare().
Also fixes some issues related to clk clean up in the driver

Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
Acked-by: default avatarLad, Prabhakar <prabhakar.lad@ti.com>
Tested-by: default avatarLad, Prabhakar <prabhakar.lad@ti.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent d046628d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1003,7 +1003,7 @@ static int __devinit dm355_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;
	}
@@ -1014,7 +1014,7 @@ static int __devinit dm355_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;
	}
@@ -1034,8 +1034,10 @@ static int __devinit dm355_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);
@@ -1050,6 +1052,8 @@ static int dm355_ccdc_remove(struct platform_device *pdev)
{
	struct resource	*res;

	clk_disable_unprepare(ccdc_cfg.sclk);
	clk_disable_unprepare(ccdc_cfg.mclk);
	clk_put(ccdc_cfg.mclk);
	clk_put(ccdc_cfg.sclk);
	iounmap(ccdc_cfg.base_addr);
+10 −6
Original line number Diff line number Diff line
@@ -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();

+4 −1
Original line number Diff line number Diff line
@@ -1053,7 +1053,7 @@ static int __devinit isif_probe(struct platform_device *pdev)
		status = PTR_ERR(isif_cfg.mclk);
		goto fail_mclk;
	}
	if (clk_enable(isif_cfg.mclk)) {
	if (clk_prepare_enable(isif_cfg.mclk)) {
		status = -ENODEV;
		goto fail_mclk;
	}
@@ -1125,6 +1125,7 @@ static int __devinit isif_probe(struct platform_device *pdev)
		i--;
	}
fail_mclk:
	clk_disable_unprepare(isif_cfg.mclk);
	clk_put(isif_cfg.mclk);
	vpfe_unregister_ccdc_device(&isif_hw_dev);
	return status;
@@ -1145,6 +1146,8 @@ static int isif_remove(struct platform_device *pdev)
		i++;
	}
	vpfe_unregister_ccdc_device(&isif_hw_dev);
	clk_disable_unprepare(isif_cfg.mclk);
	clk_put(isif_cfg.mclk);
	return 0;
}

+7 −3
Original line number Diff line number Diff line
@@ -612,7 +612,7 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
			ret =  PTR_ERR(vpbe_dev->dac_clk);
			goto fail_mutex_unlock;
		}
		if (clk_enable(vpbe_dev->dac_clk)) {
		if (clk_prepare_enable(vpbe_dev->dac_clk)) {
			ret =  -ENODEV;
			goto fail_mutex_unlock;
		}
@@ -759,8 +759,10 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
fail_dev_unregister:
	v4l2_device_unregister(&vpbe_dev->v4l2_dev);
fail_clk_put:
	if (strcmp(vpbe_dev->cfg->module_name, "dm644x-vpbe-display") != 0)
	if (strcmp(vpbe_dev->cfg->module_name, "dm644x-vpbe-display") != 0) {
		clk_disable_unprepare(vpbe_dev->dac_clk);
		clk_put(vpbe_dev->dac_clk);
	}
fail_mutex_unlock:
	mutex_unlock(&vpbe_dev->lock);
	return ret;
@@ -777,8 +779,10 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
static void vpbe_deinitialize(struct device *dev, struct vpbe_device *vpbe_dev)
{
	v4l2_device_unregister(&vpbe_dev->v4l2_dev);
	if (strcmp(vpbe_dev->cfg->module_name, "dm644x-vpbe-display") != 0)
	if (strcmp(vpbe_dev->cfg->module_name, "dm644x-vpbe-display") != 0) {
		clk_disable_unprepare(vpbe_dev->dac_clk);
		clk_put(vpbe_dev->dac_clk);
	}

	kfree(vpbe_dev->amp);
	kfree(vpbe_dev->encoders);
+4 −4
Original line number Diff line number Diff line
@@ -444,7 +444,7 @@ static int __devinit vpif_probe(struct platform_device *pdev)
		status = PTR_ERR(vpif_clk);
		goto clk_fail;
	}
	clk_enable(vpif_clk);
	clk_prepare_enable(vpif_clk);

	spin_lock_init(&vpif_lock);
	dev_info(&pdev->dev, "vpif probe success\n");
@@ -460,7 +460,7 @@ static int __devinit vpif_probe(struct platform_device *pdev)
static int __devexit vpif_remove(struct platform_device *pdev)
{
	if (vpif_clk) {
		clk_disable(vpif_clk);
		clk_disable_unprepare(vpif_clk);
		clk_put(vpif_clk);
	}

@@ -472,13 +472,13 @@ static int __devexit vpif_remove(struct platform_device *pdev)
#ifdef CONFIG_PM
static int vpif_suspend(struct device *dev)
{
	clk_disable(vpif_clk);
	clk_disable_unprepare(vpif_clk);
	return 0;
}

static int vpif_resume(struct device *dev)
{
	clk_enable(vpif_clk);
	clk_prepare_enable(vpif_clk);
	return 0;
}