All of lore.kernel.org
 help / color / mirror / Atom feed
From: Inki Dae <inki.dae@samsung.com>
To: Rahul Sharma <rahul.sharma@samsung.com>
Cc: linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	sunil joshi <joshi@samsung.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Kukjin Kim <kgene.kim@samsung.com>,
	"Szyprowski, Marek" <m.szyprowski@samsung.com>
Subject: Re: [PATCH] drm/exynos: remove hardware overlays disable from fimd probe
Date: Mon, 02 Jun 2014 20:06:01 +0900	[thread overview]
Message-ID: <538C5A99.6040505@samsung.com> (raw)
In-Reply-To: <CAPdUM4POJwfe_RyKV+ym=ENgVF+2To0qgS88UGp1ueBD3LH4ig@mail.gmail.com>

On 2014년 06월 02일 18:42, Rahul Sharma wrote:
> On 2 June 2014 14:41, Andrzej Hajda <a.hajda@samsung.com> 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@samsung.com>
>>
>> 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.

That issue would be because your boot-loader enabled a hardware overlay
but kernel driver enables another hardware overlay, which would also be
why it happens only on one target of your targets, and why it works
correctly by cleaning hardware overlays at fimd probe.

>>
> 
> 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.
> 

No, it should work correctly as is because fimd overlays will be
reconfigured at booting time by register_framebuffer() if console
framebuffer is enabled. Otherwise, a master process, X or Weston, will
reconfigure fimd overlays after kernel booting.

Thanks,
Inki Dae

> 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@vger.kernel.org/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@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

      parent reply	other threads:[~2014-06-02 11:06 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-28  6:11 [PATCH] drm/exynos: remove hardware overlays disable from fimd probe Rahul Sharma
2014-06-02  9:11 ` Andrzej Hajda
2014-06-02  9:42   ` Rahul Sharma
2014-06-02 10:11     ` Tomasz Figa
2014-06-02 10:42       ` Andrzej Hajda
2014-06-02 11:48         ` Andrzej Hajda
2014-06-09  4:13           ` Inki Dae
2014-06-09 14:10             ` [PATCH] drm/exynos: disable unused windows on apply Andrzej Hajda
2014-06-23 12:12               ` Andrzej Hajda
2014-06-23 12:43                 ` Inki Dae
2014-06-02 10:32     ` [PATCH] drm/exynos: remove hardware overlays disable from fimd probe YoungJun Cho
2014-06-02 11:06     ` Inki Dae [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=538C5A99.6040505@samsung.com \
    --to=inki.dae@samsung.com \
    --cc=a.hajda@samsung.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=joshi@samsung.com \
    --cc=kgene.kim@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=rahul.sharma@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.