From: Jeykumar Sankaran <jsanka@codeaurora.org>
To: Sean Paul <sean@poorly.run>
Cc: linux-arm-msm@vger.kernel.org,
Abhinav Kumar <abhinavk@codeaurora.org>,
Sean Paul <seanpaul@chromium.org>,
dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org
Subject: Re: [PATCH v2 1/3] drm/msm: dpu: Mask inactive pending flushes
Date: Thu, 08 Nov 2018 14:58:59 -0800 [thread overview]
Message-ID: <e1c6bc639ed06f183a5b5f4183834302@codeaurora.org> (raw)
In-Reply-To: <20181108214018.GD154160@art_vandelay>
On 2018-11-08 13:40, Sean Paul wrote:
> On Thu, Nov 08, 2018 at 01:03:03PM -0800, Jeykumar Sankaran wrote:
>> On 2018-10-30 09:00, Sean Paul wrote:
>> > From: Sean Paul <seanpaul@chromium.org>
>> >
>> > This patch masks any pending flushes which have not been latched for a
>> > commit. This will catch the case where an asynchronous update is
>> > nullified by a disable in the same frame.
>> >
>> > Changes in v2:
>> > - Added to the set
>> >
>> > Signed-off-by: Sean Paul <seanpaul@chromium.org>
>> > ---
>> > drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 7 +++++++
>> > 1 file changed, 7 insertions(+)
>> >
>> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
>> > b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
>> > index 8fa601a9abbf..d7a7fedc09f7 100644
>> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
>> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
>> > @@ -28,6 +28,7 @@
>> > #define CTL_TOP 0x014
>> > #define CTL_FLUSH 0x018
>> > #define CTL_START 0x01C
>> > +#define CTL_FLUSH_MASK 0x090
>> > #define CTL_PREPARE 0x0d0
>> > #define CTL_SW_RESET 0x030
>> > #define CTL_LAYER_EXTN_OFFSET 0x40
>> > @@ -121,6 +122,12 @@ static inline void
> dpu_hw_ctl_trigger_flush(struct
>> > dpu_hw_ctl *ctx)
>> > {
>> > trace_dpu_hw_ctl_trigger_pending_flush(ctx->pending_flush_mask,
>> > dpu_hw_ctl_get_flush_register(ctx));
>> > +
>> > + /*
>> > + * Async updates could have changed CTL_FLUSH since it was last
>> > latched.
>> > + * Mask anything not involved in this latest commit.
>> > + */
>> > + DPU_REG_WRITE(&ctx->hw, CTL_FLUSH_MASK, ~ctx->pending_flush_mask);
>> Do we need this change for adding the current async cursor support?
>
> Hmm, I think you asked me to implement this at the weekly meeting a
> little
> while ago. Apparently HW team requested that we mask off the bits for
> planes which have been disabled-but-not-flushed?
>
OK. If you want to implement the HW team recommendation, you should
block the
FLUSH writes until both FLUSH and FLUSH_MASK writes goes through. We can
do
that by writing 0xFFFFFFFF to the FLUSH_MASK indicating "hardware is not
ready"
at the beginnging of the new vsync window. Since async updates dont wait
for commit_done (vsync), we can do that only for sync commits. Once we
are
done programming all the registers and the final flush bits are ready,
the
order of writing has to be reversed by writing FLUSH first and then
FLUSH_MASK
to the inverse of FLUSH to unblock the hardware programming on vsync.
Still, there is a small window of error where vsync can happen between
FLUSH
and FLUSH_MASK writes where we will end up missing the vsync but no
partial
frame registers will be programmed.
I believe we have decided to try out this approach with a fresh set of
patches
and let the current cursor support get in as such. In that case, we can
drop
this patch from this series.
Thanks,
Jeykumar S.
> Sean
>
>> We are not masking any bit by default. So there is no need for
>> updating
> it
>> here.
>>
>> The usage of flush_mask is not completely explored yet. Maybe we can
>> add
>> this register support when we revisit this async logic as we
>> discussed.
>>
>> Thanks and Regards,
>> Jeykumar S.
>> > DPU_REG_WRITE(&ctx->hw, CTL_FLUSH, ctx->pending_flush_mask);
>> > }
>>
>> --
>> Jeykumar S
--
Jeykumar S
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
prev parent reply other threads:[~2018-11-08 22:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-30 16:00 [PATCH v2 1/3] drm/msm: dpu: Mask inactive pending flushes Sean Paul
2018-10-30 16:00 ` [PATCH v2 2/3] drm/msm: dpu: Only check flush register against " Sean Paul
[not found] ` <20181030160033.18464-2-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org>
2018-11-08 20:54 ` Jeykumar Sankaran
[not found] ` <20181030160033.18464-1-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org>
2018-10-30 16:00 ` [PATCH v2 3/3] drm/msm: dpu: Make legacy cursor updates asynchronous Sean Paul
[not found] ` <20181030160033.18464-3-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org>
2018-11-08 22:00 ` Jeykumar Sankaran
[not found] ` <0bb3272e248ad0a13fd8f8d863e7ed91-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-11-16 20:02 ` Sean Paul
2018-11-19 18:32 ` Jeykumar Sankaran
2018-11-08 21:03 ` [PATCH v2 1/3] drm/msm: dpu: Mask inactive pending flushes Jeykumar Sankaran
[not found] ` <984d4418ab48769e68084aeb4d3450e8-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-11-08 21:40 ` Sean Paul
2018-11-08 22:58 ` Jeykumar Sankaran [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=e1c6bc639ed06f183a5b5f4183834302@codeaurora.org \
--to=jsanka@codeaurora.org \
--cc=abhinavk@codeaurora.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=sean@poorly.run \
--cc=seanpaul@chromium.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox