From: Inki Dae <inki.dae@samsung.com>
To: Andrzej Hajda <a.hajda@samsung.com>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
"open list:DRM DRIVERS FOR EXYNOS"
<dri-devel@lists.freedesktop.org>,
"moderated list:ARM/SAMSUNG EXYNOS ARM ARCHITECTURES"
<linux-samsung-soc@vger.kernel.org>
Subject: Re: [PATCH 5/7] drm/exynos/decon5433: fix DECON standalone update
Date: Tue, 12 Apr 2016 16:51:53 +0900 [thread overview]
Message-ID: <570CA919.10309@samsung.com> (raw)
In-Reply-To: <570CA4CD.3040106@samsung.com>
2016년 04월 12일 16:33에 Andrzej Hajda 이(가) 쓴 글:
> On 04/12/2016 04:25 AM, Inki Dae wrote:
>> Hi Andrzej,
>>
>> 2016년 03월 23일 22:15에 Andrzej Hajda 이(가) 쓴 글:
>>> DECON should be updated after un-protecting windows and after changing
>>> output parameters, otherwise image is not displayed in case of HDMI path.
>> I'm not sure why STANDALONE_UPDATE_F bit should be updated after un-protecting windows and changing output parameters.
>> The fields with _F prefix mean that these will be applied after vsync so we use protection window in case of all registers which affect display output so that they can be updated together.
>>
>> Wouldn't there be other thing which affects HDMI output?
>>
>> In addition, we would need another patch which updates TV relevant registers only in case of DECON-TV. DECON_UPDATE is a register for DECON-TV.
>
> DECON_UPDATE is present in both DECON and DECON-TV and in both cases
> have the same field STANDALONE_UPDATE_F.
>
> Documentation for 5433 says:
>> When you modify the shadow attributed registers, set
>> STANDALONE_UPDATE_F.
>>
> So it should be set after setting registers with _F suffix,
> but it has also _F suffix - contradiction. So I guess this _F suffix
> should not be treated too strictly in this case. Moreover the suffix
> has been removed in Exynos7420 - it is called just STANDALONE_UPDATE.
Indeed. I thought the register name has TV suffix so this register is for DECON-TV. However, without the register setting, DECON didn't work correctly - display not updated.
>
> Anyway I am not sure what is exact purpose of this register and
> the changes proposed in the patch are rather results of multiple tests
> with hardware - documentation is rather poor on this subject.
>
> I am also not sure why DECON works without it but DECON-TV does not,
> anyway I set it in both variants because documentation says so.
Ok, picked them up.
Thanks,
Inki Dae
>
> Regards
> Andrzej
>
>>
>> Thanks,
>> Inki Dae
>>
>>> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
>>> ---
>>> drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 15 ++++++++-------
>>> 1 file changed, 8 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
>>> index ab9154e..7fec656 100644
>>> --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
>>> +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
>>> @@ -191,6 +191,8 @@ static void decon_commit(struct exynos_drm_crtc *crtc)
>>>
>>> /* enable output and display signal */
>>> decon_set_bits(ctx, DECON_VIDCON0, VIDCON0_ENVID | VIDCON0_ENVID_F, ~0);
>>> +
>>> + decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0);
>>> }
>>>
>>> static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
>>> @@ -316,9 +318,6 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc,
>>>
>>> /* window enable */
>>> decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, ~0);
>>> -
>>> - /* standalone update */
>>> - decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0);
>>> }
>>>
>>> static void decon_disable_plane(struct exynos_drm_crtc *crtc,
>>> @@ -336,9 +335,6 @@ static void decon_disable_plane(struct exynos_drm_crtc *crtc,
>>> decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0);
>>>
>>> decon_shadow_protect_win(ctx, win, false);
>>> -
>>> - /* standalone update */
>>> - decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0);
>>> }
>>>
>>> static void decon_atomic_flush(struct exynos_drm_crtc *crtc)
>>> @@ -352,6 +348,9 @@ static void decon_atomic_flush(struct exynos_drm_crtc *crtc)
>>> for (i = ctx->first_win; i < WINDOWS_NR; i++)
>>> decon_shadow_protect_win(ctx, i, false);
>>>
>>> + /* standalone update */
>>> + decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0);
>>> +
>>> if (ctx->out_type == IFTYPE_I80)
>>> set_bit(BIT_WIN_UPDATED, &ctx->flags);
>>> }
>>> @@ -463,8 +462,10 @@ static void decon_clear_channels(struct exynos_drm_crtc *crtc)
>>> decon_shadow_protect_win(ctx, win, true);
>>> decon_set_bits(ctx, DECON_WINCONx(win), WINCONx_ENWIN_F, 0);
>>> decon_shadow_protect_win(ctx, win, false);
>>> - decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0);
>>> }
>>> +
>>> + decon_set_bits(ctx, DECON_UPDATE, STANDALONE_UPDATE_F, ~0);
>>> +
>>> /* TODO: wait for possible vsync */
>>> msleep(50);
>>>
>>>
>
>
next prev parent reply other threads:[~2016-04-12 7:51 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-23 13:15 [PATCH 0/7] drm/exynos: HDMI and DECON fixes and enhancements Andrzej Hajda
2016-03-23 13:15 ` [PATCH 1/7] drm/exynos/hdmi: fix PHY configuration sequence Andrzej Hajda
2016-03-23 13:15 ` [PATCH 2/7] drm/exynos/hdmi: add PHY power off signal handling Andrzej Hajda
2016-03-23 13:15 ` [PATCH 3/7] drm/exynos/hdmi: add core reset code Andrzej Hajda
2016-03-23 13:15 ` [PATCH 4/7] drm/exynos/hdmi: remove registry dump Andrzej Hajda
2016-03-23 13:15 ` [PATCH 5/7] drm/exynos/decon5433: fix DECON standalone update Andrzej Hajda
2016-04-12 2:25 ` Inki Dae
2016-04-12 7:33 ` Andrzej Hajda
2016-04-12 7:51 ` Inki Dae [this message]
2016-03-23 13:15 ` [PATCH 6/7] drm/exynos/decon5433: reset decon on start Andrzej Hajda
2016-03-23 13:15 ` [PATCH 7/7] drm/exynos/decon5433: do not protect window in plane disable Andrzej Hajda
2016-03-24 1:07 ` [PATCH 0/7] drm/exynos: HDMI and DECON fixes and enhancements Inki Dae
2016-03-24 1:28 ` Inki Dae
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=570CA919.10309@samsung.com \
--to=inki.dae@samsung.com \
--cc=a.hajda@samsung.com \
--cc=b.zolnierkie@samsung.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=m.szyprowski@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.