From: Abhinav Kumar <quic_abhinavk@quicinc.com>
To: Marijn Suijten <marijn.suijten@somainline.org>,
Kuogee Hsieh <quic_khsieh@quicinc.com>
Cc: <robdclark@gmail.com>, <sean@poorly.run>, <swboyd@chromium.org>,
<dianders@chromium.org>, <vkoul@kernel.org>, <daniel@ffwll.ch>,
<airlied@gmail.com>, <agross@kernel.org>,
<dmitry.baryshkov@linaro.org>, <andersson@kernel.org>,
<quic_sbillaka@quicinc.com>, <freedreno@lists.freedesktop.org>,
<dri-devel@lists.freedesktop.org>,
<linux-arm-msm@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] drm/msm/dpu: always program dsc active bits
Date: Tue, 11 Apr 2023 16:45:34 -0700 [thread overview]
Message-ID: <83f9a438-52c5-83f3-1767-92d16518d8f0@quicinc.com> (raw)
In-Reply-To: <z7wj2lcgcdxsqh7ylhec3ig6o4p6q37zqvpzoxp4bd4vid2z2n@ubsgt3ebqrwr>
On 4/11/2023 3:14 PM, Marijn Suijten wrote:
> Full-caps DSC in the title, as discussed previously.
>
> On that note, don't forget to CC those who have reviewed your patches
> previously, as also brought up in earlier review.
>
> On 2023-04-11 14:04:55, Kuogee Hsieh wrote:
>> In current code, the dsc active bits are set only if the cfg->dsc is set.
>
> Some typo nits:
>
> DSC* active bits.
>
> s/are set/are written/ (the variable is set, registers are written).
>
> Drop `the` before `cfg->dsc` (and you could replace `s/is set/is
> non-zero/).
>
>> However, for displays which are hot-pluggable, there can be a use-case
>> of disconnecting a DSC supported sink and connecting a non-DSC sink.
>>
>> For those cases we need to clear DSC active bits during teardown.
>>
>> Fixes: ede3c6bb00c ("drm/msm/disp/dpu1: Add DSC support in hw_ctl")
>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
>
> If you have validated that it is fine to write these registers on
> _every_ platform supported by DPU1, and after fixing the above nits and
> the Fixes: commit hash as pointed out by Abhinav:
>
> Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
>
> And see one question below.
>
>> ---
>> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 7 +++----
>> 1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> 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 bbdc95c..88e4efe 100644
>> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
>> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c
>> @@ -541,10 +541,9 @@ static void dpu_hw_ctl_intf_cfg_v1(struct dpu_hw_ctl *ctx,
>> if (cfg->merge_3d)
>> DPU_REG_WRITE(c, CTL_MERGE_3D_ACTIVE,
>> BIT(cfg->merge_3d - MERGE_3D_0));
>> - if (cfg->dsc) {
>> - DPU_REG_WRITE(&ctx->hw, CTL_FLUSH, DSC_IDX);
>> - DPU_REG_WRITE(c, CTL_DSC_ACTIVE, cfg->dsc);
>> - }
>> +
>> + DPU_REG_WRITE(&ctx->hw, CTL_FLUSH, DSC_IDX);
>
> Does this flush all DSCs programmed in CTL_DSC_FLUSH as set above? That
> is currently still in `if (cfg->dsc)` and never overwritten if all DSCs
> are disabled, should it be taken out of the `if` to make sure no DSCs
> are inadvertently flushed, or otherwise cache the "previous mask" to
> make sure we flush exactly the right DSC blocks?
>
Yes, DSC flush is hierarchical. This is the main DSC flush which will
enforce the flush of the DSC's we are trying to flush in the
CTL_DSC_FLUSH register.
So if DSC was active, the CTL_FLUSH will only enforce the flush of the
DSC's programmed in CTL_DSC_FLUSH
If DSC is not active, we still need to flush that as well (that was the
missing bit).
No need to cache previous mask. That programming should be accurate in
cfg->dsc already.
> Thanks!
>
> - Marijn
>
>> + DPU_REG_WRITE(c, CTL_DSC_ACTIVE, cfg->dsc);
>> }
>>
>> static void dpu_hw_ctl_intf_cfg(struct dpu_hw_ctl *ctx,
>> --
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
>> a Linux Foundation Collaborative Project
>>
next prev parent reply other threads:[~2023-04-11 23:46 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-11 21:04 Kuogee Hsieh
2023-04-11 21:39 ` Abhinav Kumar
2023-04-11 22:14 ` Marijn Suijten
2023-04-11 23:45 ` Abhinav Kumar [this message]
2023-04-12 7:24 ` Marijn Suijten
2023-04-12 17:33 ` Abhinav Kumar
2023-04-14 7:35 ` Marijn Suijten
2023-04-14 15:48 ` Abhinav Kumar
2023-04-14 17:34 ` Marijn Suijten
2023-04-14 17:57 ` [Freedreno] " Abhinav Kumar
2023-04-14 23:11 ` Marijn Suijten
2023-04-14 23:51 ` Abhinav Kumar
2023-04-27 20:32 ` Marijn Suijten
2023-04-11 22:17 ` Dmitry Baryshkov
2023-04-11 23:32 ` Abhinav Kumar
2023-04-11 23:36 ` Dmitry Baryshkov
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=83f9a438-52c5-83f3-1767-92d16518d8f0@quicinc.com \
--to=quic_abhinavk@quicinc.com \
--cc=agross@kernel.org \
--cc=airlied@gmail.com \
--cc=andersson@kernel.org \
--cc=daniel@ffwll.ch \
--cc=dianders@chromium.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=quic_khsieh@quicinc.com \
--cc=quic_sbillaka@quicinc.com \
--cc=robdclark@gmail.com \
--cc=sean@poorly.run \
--cc=swboyd@chromium.org \
--cc=vkoul@kernel.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
all inboxes | Powered by JetHome®