On Fri, Jul 06, 2012 at 09:13:11AM +0200, Javier Martin wrote:
> This driver wasn't converted to the new clock changes
> (clk_prepare_enable/clk_disable_unprepare). Also naming
> of emma-prp related clocks for the i.MX27 was not correct.
> 
> Signed-off-by: Javier Martin <javier.mar...@vista-silicon.com>
> ---
>  arch/arm/mach-imx/clk-imx27.c    |    8 ++++---
>  drivers/media/video/mx2_camera.c |   47 
> +++++++++++++++++++++-----------------
>  2 files changed, 31 insertions(+), 24 deletions(-)
> 
> @@ -1616,23 +1616,12 @@ static int __devinit mx27_camera_emma_init(struct 
> mx2_camera_dev *pcdev)
>               goto exit_iounmap;
>       }
>  
> -     pcdev->clk_emma = clk_get(NULL, "emma");
> -     if (IS_ERR(pcdev->clk_emma)) {
> -             err = PTR_ERR(pcdev->clk_emma);
> -             goto exit_free_irq;
> -     }
> -
> -     clk_enable(pcdev->clk_emma);
> -
>       err = mx27_camera_emma_prp_reset(pcdev);
>       if (err)
> -             goto exit_clk_emma_put;
> +             goto exit_free_irq;
>  
>       return err;
>  
> -exit_clk_emma_put:
> -     clk_disable(pcdev->clk_emma);
> -     clk_put(pcdev->clk_emma);
>  exit_free_irq:
>       free_irq(pcdev->irq_emma, pcdev);
>  exit_iounmap:
> @@ -1655,6 +1644,7 @@ static int __devinit mx2_camera_probe(struct 
> platform_device *pdev)
>  
>       res_csi = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>       irq_csi = platform_get_irq(pdev, 0);
> +
>       if (res_csi == NULL || irq_csi < 0) {
>               dev_err(&pdev->dev, "Missing platform resources data\n");
>               err = -ENODEV;
> @@ -1668,12 +1658,26 @@ static int __devinit mx2_camera_probe(struct 
> platform_device *pdev)
>               goto exit;
>       }
>  
> -     pcdev->clk_csi = clk_get(&pdev->dev, NULL);
> +     pcdev->clk_csi = devm_clk_get(&pdev->dev, "ahb");
>       if (IS_ERR(pcdev->clk_csi)) {
>               dev_err(&pdev->dev, "Could not get csi clock\n");
>               err = PTR_ERR(pcdev->clk_csi);
>               goto exit_kfree;
>       }
> +     pcdev->clk_emma_ipg = devm_clk_get(&pdev->dev, "emma-ipg");
> +     if (IS_ERR(pcdev->clk_emma_ipg)) {
> +             err = PTR_ERR(pcdev->clk_emma_ipg);
> +             goto exit_kfree;
> +     }
> +     pcdev->clk_emma_ahb = devm_clk_get(&pdev->dev, "emma-ahb");
> +     if (IS_ERR(pcdev->clk_emma_ahb)) {
> +             err = PTR_ERR(pcdev->clk_emma_ahb);
> +             goto exit_kfree;
> +     }
> +
> +     clk_prepare_enable(pcdev->clk_csi);
> +     clk_prepare_enable(pcdev->clk_emma_ipg);
> +     clk_prepare_enable(pcdev->clk_emma_ahb);
>  
>       pcdev->res_csi = res_csi;
>       pcdev->pdata = pdev->dev.platform_data;
> @@ -1768,8 +1772,8 @@ exit_free_emma:
>  eallocctx:
>       if (cpu_is_mx27()) {
>               free_irq(pcdev->irq_emma, pcdev);
> -             clk_disable(pcdev->clk_emma);
> -             clk_put(pcdev->clk_emma);
> +             clk_disable_unprepare(pcdev->clk_emma_ipg);
> +             clk_disable_unprepare(pcdev->clk_emma_ahb);

The clk_disable_unprepare is inside a cpu_is_mx27() which seems correct.
Shouldn't the corresponding clk_get be in cpu_is_mx27() aswell?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to