[PATCH v2] drm/exynos: enable FIMD clocks

Vikas Sajjan vikas.sajjan at linaro.org
Wed Mar 27 03:47:35 PDT 2013


Hi,

On 27 March 2013 15:53, Inki Dae <inki.dae at samsung.com> wrote:
> 2013/3/20 Vikas Sajjan <vikas.sajjan at linaro.org>:
>> While migrating to common clock framework (CCF), found that the FIMD clocks
>> were pulled down by the CCF.
>> If CCF finds any clock(s) which has NOT been claimed by any of the
>> drivers, then such clock(s) are PULLed low by CCF.
>>
>> By calling clk_prepare_enable() for FIMD clocks fixes the issue.
>>
>> this patch also replaces clk_disable() with clk_disable_unprepare()
>> during exit.
>>
>> Signed-off-by: Vikas Sajjan <vikas.sajjan at linaro.org>
>> ---
>> Changes since v1:
>>         - added error checking for clk_prepare_enable() and also replaced
>>         clk_disable() with clk_disable_unprepare() during exit.
>> ---
>>  drivers/gpu/drm/exynos/exynos_drm_fimd.c |   17 +++++++++++++++--
>>  1 file changed, 15 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> index 9537761..014d750 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> @@ -934,6 +934,19 @@ static int fimd_probe(struct platform_device *pdev)
>>                 return ret;
>>         }
>>
>> +       ret = clk_prepare_enable(ctx->lcd_clk);
>> +       if (ret) {
>> +               dev_err(dev, "failed to enable 'sclk_fimd' clock\n");
>> +               return ret;
>> +       }
>> +
>> +       ret = clk_prepare_enable(ctx->bus_clk);
>> +       if (ret) {
>> +               clk_disable_unprepare(ctx->lcd_clk);
>> +               dev_err(dev, "failed to enable 'fimd' clock\n");
>> +               return ret;
>> +       }
>> +
>
> Please remove the above two clk_prepare_enable function calls and use
> them in fimd_clock() instead of clk_enable/disable(). When probed,
> fimd clock will be enabled by runtime pm.
>

Sure, will modify and resend.

> Thanks,
> Inki Dae
>
>>         ctx->vidcon0 = pdata->vidcon0;
>>         ctx->vidcon1 = pdata->vidcon1;
>>         ctx->default_win = pdata->default_win;
>> @@ -981,8 +994,8 @@ static int fimd_remove(struct platform_device *pdev)
>>         if (ctx->suspended)
>>                 goto out;
>>
>> -       clk_disable(ctx->lcd_clk);
>> -       clk_disable(ctx->bus_clk);
>> +       clk_disable_unprepare(ctx->lcd_clk);
>> +       clk_disable_unprepare(ctx->bus_clk);
>>
>>         pm_runtime_set_suspended(dev);
>>         pm_runtime_put_sync(dev);
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Thanks and Regards
 Vikas Sajjan


More information about the dri-devel mailing list