Re: [PATCH] drm/exynos: remove hardware overlays disable from fimd probe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2 June 2014 14:41, Andrzej Hajda <a.hajda@xxxxxxxxxxx> wrote:
> Hi Rahul,
>
> On 05/28/2014 08:11 AM, Rahul Sharma wrote:
>> System hangs when FIMD registers are accessed to disable
>> hardware overlays. This is because of the clocks which are
>> not enabled before register access.
>>
>> 'Hardware overlay disable' is cleaned from the FIMD probe.
>>
>> Signed-off-by: Rahul Sharma <rahul.sharma@xxxxxxxxxxx>
>
> This patch causes regression on some exynos4210-universal_c210 devices,
> everything works expect colors are incorrect - it seems blue component
> is very dark, almost black.
>

Oh.... Sorry for that. I did not see any problem on 5250/5420/5800. I do not
have setup for 4210. Better we should revert this patch.

Would you please help me by verifying the following patch on 4210? This
is an alternate solution to the same problem.

http://www.mail-archive.com/linux-samsung-soc@xxxxxxxxxxxxxxx/msg31426.html

Thanks Andrej, for bringing it to notice.

Regards,
Rahul Sharma

> Regards
> Andrzej
>
>> ---
>> Based on exynos-drm-next branch.
>>
>>  drivers/gpu/drm/exynos/exynos_drm_fimd.c |   17 -----------------
>>  1 file changed, 17 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> index bd30d0c..2ec634f 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> @@ -703,19 +703,6 @@ static void fimd_win_disable(struct exynos_drm_manager *mgr, int zpos)
>>       win_data->enabled = false;
>>  }
>>
>> -static void fimd_clear_win(struct fimd_context *ctx, int win)
>> -{
>> -     writel(0, ctx->regs + WINCON(win));
>> -     writel(0, ctx->regs + VIDOSD_A(win));
>> -     writel(0, ctx->regs + VIDOSD_B(win));
>> -     writel(0, ctx->regs + VIDOSD_C(win));
>> -
>> -     if (win == 1 || win == 2)
>> -             writel(0, ctx->regs + VIDOSD_D(win));
>> -
>> -     fimd_shadow_protect_win(ctx, win, false);
>> -}
>> -
>>  static void fimd_window_suspend(struct exynos_drm_manager *mgr)
>>  {
>>       struct fimd_context *ctx = mgr->ctx;
>> @@ -898,16 +885,12 @@ static int fimd_bind(struct device *dev, struct device *master, void *data)
>>  {
>>       struct fimd_context *ctx = fimd_manager.ctx;
>>       struct drm_device *drm_dev = data;
>> -     int win;
>>
>>       fimd_mgr_initialize(&fimd_manager, drm_dev);
>>       exynos_drm_crtc_create(&fimd_manager);
>>       if (ctx->display)
>>               exynos_drm_create_enc_conn(drm_dev, ctx->display);
>>
>> -     for (win = 0; win < WINDOWS_NR; win++)
>> -             fimd_clear_win(ctx, win);
>> -
>>       return 0;
>>
>>  }
>>
>
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux