mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180
@ 2025-11-15  3:08 Dmitry Baryshkov
  2025-11-17 11:25 ` Konrad Dybcio
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2025-11-15  3:08 UTC (permalink / raw)
  To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
	Sean Paul, Marijn Suijten, David Airlie, Simona Vetter
  Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, Federico Amedeo Izzo

IGT reported test failures with Gamma correction block on SC7180.
Disable GC subblock on SC7180 until we trage the issue.

Cc: Federico Amedeo Izzo <federico@izzo.pro>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Most likely I will squash this into the GC patch
---
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h | 2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c         | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h
index c990ba3b5db02d65934179d5ad42bd740f6944b2..b6415adcea10126fb6bb29d60a9d4159052a61ba 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h
@@ -103,7 +103,7 @@ static const struct dpu_dspp_cfg sc7180_dspp[] = {
 	{
 		.name = "dspp_0", .id = DSPP_0,
 		.base = 0x54000, .len = 0x1800,
-		.sblk = &sdm845_dspp_sblk,
+		.sblk = &sc7180_dspp_sblk,
 	},
 };
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
index 23bb39b471b71e3f313321ad1c7a6bd4d2159019..bfd34368a03641651530d9c564a74d2e9398f656 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
@@ -389,6 +389,15 @@ static const struct dpu_dspp_sub_blks sdm845_dspp_sblk = {
 		.len = 0x90, .version = 0x40000},
 };
 
+/*
+ * Some of Gamma-related IGT tests fail on SC7180. Disable GC until we triage
+ * those failures.
+ */
+static const struct dpu_dspp_sub_blks sc7180_dspp_sblk = {
+	.pcc = {.name = "pcc", .base = 0x1700,
+		.len = 0x90, .version = 0x40000},
+};
+
 static const struct dpu_dspp_sub_blks sm8750_dspp_sblk = {
 	.pcc = {.name = "pcc", .base = 0x1700,
 		.len = 0x90, .version = 0x60000},

---
base-commit: e2f085ab8636fae2ebe0adf42071e7558234cd7b
change-id: 20251115-dpu-fix-gc-931feac75705

Best regards,
-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180
  2025-11-15  3:08 [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180 Dmitry Baryshkov
@ 2025-11-17 11:25 ` Konrad Dybcio
  2025-11-17 11:51   ` Dmitry Baryshkov
  0 siblings, 1 reply; 6+ messages in thread
From: Konrad Dybcio @ 2025-11-17 11:25 UTC (permalink / raw)
  To: Dmitry Baryshkov, Rob Clark, Dmitry Baryshkov, Abhinav Kumar,
	Jessica Zhang, Sean Paul, Marijn Suijten, David Airlie,
	Simona Vetter
  Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel, Federico Amedeo Izzo

On 11/15/25 4:08 AM, Dmitry Baryshkov wrote:
> IGT reported test failures with Gamma correction block on SC7180.
> Disable GC subblock on SC7180 until we trage the issue.
> 
> Cc: Federico Amedeo Izzo <federico@izzo.pro>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> Most likely I will squash this into the GC patch
> ---

Peeking at downstream, 7180 and 845 should have the exact same GC
(v1.8).. it seems like there's an attempt to program it through
REGDMA instead of regular reg access. Not sure if it's actually
necessary or just an optimization

What tests are exactly failing? I couldn't track it down on FDO GL

Konrad

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180
  2025-11-17 11:25 ` Konrad Dybcio
@ 2025-11-17 11:51   ` Dmitry Baryshkov
  2025-11-17 12:09     ` Konrad Dybcio
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2025-11-17 11:51 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
	Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
	linux-arm-msm, dri-devel, freedreno, linux-kernel,
	Federico Amedeo Izzo

On Mon, 17 Nov 2025 at 13:25, Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 11/15/25 4:08 AM, Dmitry Baryshkov wrote:
> > IGT reported test failures with Gamma correction block on SC7180.
> > Disable GC subblock on SC7180 until we trage the issue.
> >
> > Cc: Federico Amedeo Izzo <federico@izzo.pro>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
> > Most likely I will squash this into the GC patch
> > ---
>
> Peeking at downstream, 7180 and 845 should have the exact same GC
> (v1.8).. it seems like there's an attempt to program it through
> REGDMA instead of regular reg access. Not sure if it's actually
> necessary or just an optimization

I think it's mostly an optimization.

> What tests are exactly failing? I couldn't track it down on FDO GL

See [1] and other failed SC7180 jobs from the same pipeline. I haven't
triaged it yet, but I assume this might be related to platform
resources (it has only 2 LM blocks and only 1 DSPP).
Another possibility is that maybe we need higher CFG bus bandwidth
when writing LUT registers.

[1] https://gitlab.freedesktop.org/drm/msm/-/jobs/87878393


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180
  2025-11-17 11:51   ` Dmitry Baryshkov
@ 2025-11-17 12:09     ` Konrad Dybcio
  2025-11-17 13:16       ` Dmitry Baryshkov
  0 siblings, 1 reply; 6+ messages in thread
From: Konrad Dybcio @ 2025-11-17 12:09 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
	Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
	linux-arm-msm, dri-devel, freedreno, linux-kernel,
	Federico Amedeo Izzo

On 11/17/25 12:51 PM, Dmitry Baryshkov wrote:
> On Mon, 17 Nov 2025 at 13:25, Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 11/15/25 4:08 AM, Dmitry Baryshkov wrote:
>>> IGT reported test failures with Gamma correction block on SC7180.
>>> Disable GC subblock on SC7180 until we trage the issue.
>>>
>>> Cc: Federico Amedeo Izzo <federico@izzo.pro>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>> ---
>>> Most likely I will squash this into the GC patch
>>> ---
>>
>> Peeking at downstream, 7180 and 845 should have the exact same GC
>> (v1.8).. it seems like there's an attempt to program it through
>> REGDMA instead of regular reg access. Not sure if it's actually
>> necessary or just an optimization
> 
> I think it's mostly an optimization.
> 
>> What tests are exactly failing? I couldn't track it down on FDO GL
> 
> See [1] and other failed SC7180 jobs from the same pipeline. I haven't
> triaged it yet, but I assume this might be related to platform
> resources (it has only 2 LM blocks and only 1 DSPP).
> Another possibility is that maybe we need higher CFG bus bandwidth
> when writing LUT registers.
> 
> [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/87878393

igt.kms_color@gamma.log fails, we get an ENAVAIL (-119) (which doesn't
seem like a good return value for this error but anyway..), dmesg says

05:42:13.199: [   75.472174] [drm:_dpu_rm_check_lm_and_get_connected_blks] [dpu error]failed to get dspp on lm 0
05:42:13.199: [   75.481487] [drm:_dpu_rm_make_reservation] [dpu error]unable to find appropriate mixers
05:42:13.199: [   75.490235] [drm:dpu_rm_reserve] [dpu error]failed to reserve hw resources: -119

which comes from:

idx = lm_cfg->dspp - DSPP_0;
if (idx < 0 || idx >= ARRAY_SIZE(rm->dspp_blks)) {
	// misleading error message, it's not LM%d, but DSPP%d
	DPU_ERROR("failed to get dspp on lm %d\n", lm_cfg->dspp);
	return false;
}

which comes from:

static const struct dpu_lm_cfg sc7180_lm[] = {
        {
                .name = "lm_0", .id = LM_0,
                .base = 0x44000, .len = 0x320,
                .features = MIXER_MSM8998_MASK,
                .sblk = &sc7180_lm_sblk,
                .lm_pair = LM_1,
                .pingpong = PINGPONG_0,
                .dspp = DSPP_0,
        }, {
                .name = "lm_1", .id = LM_1,
                .base = 0x45000, .len = 0x320,
                .features = MIXER_MSM8998_MASK,
                .sblk = &sc7180_lm_sblk,
                .lm_pair = LM_0,
                .pingpong = PINGPONG_1,
		// no dspp here, errors out
        },
};

would simply binding .dspp = DSPP_0 to the other one just work here?

Also, would that mean we can only have gamma control on a single active
LM at a time?

Konrad

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180
  2025-11-17 12:09     ` Konrad Dybcio
@ 2025-11-17 13:16       ` Dmitry Baryshkov
  2025-11-17 13:39         ` Konrad Dybcio
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2025-11-17 13:16 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
	Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
	linux-arm-msm, dri-devel, freedreno, linux-kernel,
	Federico Amedeo Izzo

On Mon, 17 Nov 2025 at 14:10, Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 11/17/25 12:51 PM, Dmitry Baryshkov wrote:
> > On Mon, 17 Nov 2025 at 13:25, Konrad Dybcio
> > <konrad.dybcio@oss.qualcomm.com> wrote:
> >>
> >> On 11/15/25 4:08 AM, Dmitry Baryshkov wrote:
> >>> IGT reported test failures with Gamma correction block on SC7180.
> >>> Disable GC subblock on SC7180 until we trage the issue.
> >>>
> >>> Cc: Federico Amedeo Izzo <federico@izzo.pro>
> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> >>> ---
> >>> Most likely I will squash this into the GC patch
> >>> ---
> >>
> >> Peeking at downstream, 7180 and 845 should have the exact same GC
> >> (v1.8).. it seems like there's an attempt to program it through
> >> REGDMA instead of regular reg access. Not sure if it's actually
> >> necessary or just an optimization
> >
> > I think it's mostly an optimization.
> >
> >> What tests are exactly failing? I couldn't track it down on FDO GL
> >
> > See [1] and other failed SC7180 jobs from the same pipeline. I haven't
> > triaged it yet, but I assume this might be related to platform
> > resources (it has only 2 LM blocks and only 1 DSPP).
> > Another possibility is that maybe we need higher CFG bus bandwidth
> > when writing LUT registers.
> >
> > [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/87878393
>
> igt.kms_color@gamma.log fails, we get an ENAVAIL (-119) (which doesn't
> seem like a good return value for this error but anyway..), dmesg says
>
> 05:42:13.199: [   75.472174] [drm:_dpu_rm_check_lm_and_get_connected_blks] [dpu error]failed to get dspp on lm 0
> 05:42:13.199: [   75.481487] [drm:_dpu_rm_make_reservation] [dpu error]unable to find appropriate mixers
> 05:42:13.199: [   75.490235] [drm:dpu_rm_reserve] [dpu error]failed to reserve hw resources: -119
>
> which comes from:
>
> idx = lm_cfg->dspp - DSPP_0;
> if (idx < 0 || idx >= ARRAY_SIZE(rm->dspp_blks)) {
>         // misleading error message, it's not LM%d, but DSPP%d
>         DPU_ERROR("failed to get dspp on lm %d\n", lm_cfg->dspp);
>         return false;
> }
>
> which comes from:
>
> static const struct dpu_lm_cfg sc7180_lm[] = {
>         {
>                 .name = "lm_0", .id = LM_0,
>                 .base = 0x44000, .len = 0x320,
>                 .features = MIXER_MSM8998_MASK,
>                 .sblk = &sc7180_lm_sblk,
>                 .lm_pair = LM_1,
>                 .pingpong = PINGPONG_0,
>                 .dspp = DSPP_0,
>         }, {
>                 .name = "lm_1", .id = LM_1,
>                 .base = 0x45000, .len = 0x320,
>                 .features = MIXER_MSM8998_MASK,
>                 .sblk = &sc7180_lm_sblk,
>                 .lm_pair = LM_0,
>                 .pingpong = PINGPONG_1,
>                 // no dspp here, errors out
>         },
> };
>
> would simply binding .dspp = DSPP_0 to the other one just work here?

Only LM_0 can use DSPP_0, that part is not flexible.

> Also, would that mean we can only have gamma control on a single active
> LM at a time?

We can only control gamma on LM_0 on this platform.

BTW, the other log is more interesting:

[3] https://gitlab.freedesktop.org/drm/msm/-/jobs/87895515/viewer


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180
  2025-11-17 13:16       ` Dmitry Baryshkov
@ 2025-11-17 13:39         ` Konrad Dybcio
  0 siblings, 0 replies; 6+ messages in thread
From: Konrad Dybcio @ 2025-11-17 13:39 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
	Sean Paul, Marijn Suijten, David Airlie, Simona Vetter,
	linux-arm-msm, dri-devel, freedreno, linux-kernel,
	Federico Amedeo Izzo

On 11/17/25 2:16 PM, Dmitry Baryshkov wrote:
> On Mon, 17 Nov 2025 at 14:10, Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 11/17/25 12:51 PM, Dmitry Baryshkov wrote:
>>> On Mon, 17 Nov 2025 at 13:25, Konrad Dybcio
>>> <konrad.dybcio@oss.qualcomm.com> wrote:
>>>>
>>>> On 11/15/25 4:08 AM, Dmitry Baryshkov wrote:
>>>>> IGT reported test failures with Gamma correction block on SC7180.
>>>>> Disable GC subblock on SC7180 until we trage the issue.
>>>>>
>>>>> Cc: Federico Amedeo Izzo <federico@izzo.pro>
>>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>>> ---
>>>>> Most likely I will squash this into the GC patch
>>>>> ---
>>>>
>>>> Peeking at downstream, 7180 and 845 should have the exact same GC
>>>> (v1.8).. it seems like there's an attempt to program it through
>>>> REGDMA instead of regular reg access. Not sure if it's actually
>>>> necessary or just an optimization
>>>
>>> I think it's mostly an optimization.
>>>
>>>> What tests are exactly failing? I couldn't track it down on FDO GL
>>>
>>> See [1] and other failed SC7180 jobs from the same pipeline. I haven't
>>> triaged it yet, but I assume this might be related to platform
>>> resources (it has only 2 LM blocks and only 1 DSPP).
>>> Another possibility is that maybe we need higher CFG bus bandwidth
>>> when writing LUT registers.
>>>
>>> [1] https://gitlab.freedesktop.org/drm/msm/-/jobs/87878393
>>
>> igt.kms_color@gamma.log fails, we get an ENAVAIL (-119) (which doesn't
>> seem like a good return value for this error but anyway..), dmesg says
>>
>> 05:42:13.199: [   75.472174] [drm:_dpu_rm_check_lm_and_get_connected_blks] [dpu error]failed to get dspp on lm 0
>> 05:42:13.199: [   75.481487] [drm:_dpu_rm_make_reservation] [dpu error]unable to find appropriate mixers
>> 05:42:13.199: [   75.490235] [drm:dpu_rm_reserve] [dpu error]failed to reserve hw resources: -119
>>
>> which comes from:
>>
>> idx = lm_cfg->dspp - DSPP_0;
>> if (idx < 0 || idx >= ARRAY_SIZE(rm->dspp_blks)) {
>>         // misleading error message, it's not LM%d, but DSPP%d
>>         DPU_ERROR("failed to get dspp on lm %d\n", lm_cfg->dspp);
>>         return false;
>> }
>>
>> which comes from:
>>
>> static const struct dpu_lm_cfg sc7180_lm[] = {
>>         {
>>                 .name = "lm_0", .id = LM_0,
>>                 .base = 0x44000, .len = 0x320,
>>                 .features = MIXER_MSM8998_MASK,
>>                 .sblk = &sc7180_lm_sblk,
>>                 .lm_pair = LM_1,
>>                 .pingpong = PINGPONG_0,
>>                 .dspp = DSPP_0,
>>         }, {
>>                 .name = "lm_1", .id = LM_1,
>>                 .base = 0x45000, .len = 0x320,
>>                 .features = MIXER_MSM8998_MASK,
>>                 .sblk = &sc7180_lm_sblk,
>>                 .lm_pair = LM_0,
>>                 .pingpong = PINGPONG_1,
>>                 // no dspp here, errors out
>>         },
>> };
>>
>> would simply binding .dspp = DSPP_0 to the other one just work here?
> 
> Only LM_0 can use DSPP_0, that part is not flexible.

OK that makes sense

> 
>> Also, would that mean we can only have gamma control on a single active
>> LM at a time?
> 
> We can only control gamma on LM_0 on this platform.
> 
> BTW, the other log is more interesting:
> 
> [3] https://gitlab.freedesktop.org/drm/msm/-/jobs/87895515/viewer

I wonder if we need to take a closer look at this hunk:

/* Disable 8-bit rounding mode */
gc_lut->flags = 0;

also, IGT tests XRGB8888 - any chance the X is getting mistakenly
(un)modified?

Konrad

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-11-17 13:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-15  3:08 [PATCH] drm/msm/dpu: disable gamma correction unit on SC7180 Dmitry Baryshkov
2025-11-17 11:25 ` Konrad Dybcio
2025-11-17 11:51   ` Dmitry Baryshkov
2025-11-17 12:09     ` Konrad Dybcio
2025-11-17 13:16       ` Dmitry Baryshkov
2025-11-17 13:39         ` Konrad Dybcio

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®