Does the attached partial revert fix it? Alex On Wed, Jul 10, 2024 at 3:03 AM Mikhail Gavrilov <mikhail.v.gavrilov@xxxxxxxxx> wrote: > > On Wed, Jul 10, 2024 at 12:01 PM Mikhail Gavrilov > <mikhail.v.gavrilov@xxxxxxxxx> wrote: > > > > On Tue, Jul 9, 2024 at 7:48 PM Rodrigo Siqueira Jordao > > <Rodrigo.Siqueira@xxxxxxx> wrote: > > > Hi, > > > > > > I also tried it with 6900XT. I got the same results on my side. > > > > This is weird. > > > > > Anyway, I could not reproduce the issue with the below components. I may > > > be missing something that will trigger this bug; in this sense, could > > > you describe the following: > > > - The display resolution and refresh rate. > > > > 3840x2160 and 120Hz > > At 60Hz issue not reproduced. > > > > > - Are you able to reproduce this issue with DP and HDMI? > > > > My TV, an OLED LG C3, has only an HDMI 2.1 port. > > > > > - Could you provide the firmware information: sudo cat > > > /sys/kernel/debug/dri/0/amdgpu_firmware_info > > > > > sudo cat /sys/kernel/debug/dri/0/amdgpu_firmware_info > > [sudo] password for mikhail: > > VCE feature version: 0, firmware version: 0x00000000 > > UVD feature version: 0, firmware version: 0x00000000 > > MC feature version: 0, firmware version: 0x00000000 > > ME feature version: 38, firmware version: 0x0000000e > > PFP feature version: 38, firmware version: 0x0000000e > > CE feature version: 38, firmware version: 0x00000003 > > RLC feature version: 1, firmware version: 0x0000001f > > RLC SRLC feature version: 1, firmware version: 0x00000001 > > RLC SRLG feature version: 1, firmware version: 0x00000001 > > RLC SRLS feature version: 1, firmware version: 0x00000001 > > RLCP feature version: 0, firmware version: 0x00000000 > > RLCV feature version: 0, firmware version: 0x00000000 > > MEC feature version: 38, firmware version: 0x00000015 > > MEC2 feature version: 38, firmware version: 0x00000015 > > IMU feature version: 0, firmware version: 0x00000000 > > SOS feature version: 0, firmware version: 0x00000000 > > ASD feature version: 553648344, firmware version: 0x210000d8 > > TA XGMI feature version: 0x00000000, firmware version: 0x00000000 > > TA RAS feature version: 0x00000000, firmware version: 0x00000000 > > TA HDCP feature version: 0x00000000, firmware version: 0x1700003f > > TA DTM feature version: 0x00000000, firmware version: 0x12000016 > > TA RAP feature version: 0x00000000, firmware version: 0x00000000 > > TA SECUREDISPLAY feature version: 0x00000000, firmware version: 0x00000000 > > SMC feature version: 0, program: 0, firmware version: 0x00544fdf (84.79.223) > > SDMA0 feature version: 52, firmware version: 0x00000009 > > VCN feature version: 0, firmware version: 0x0311f002 > > DMCU feature version: 0, firmware version: 0x00000000 > > DMCUB feature version: 0, firmware version: 0x05000f00 > > TOC feature version: 0, firmware version: 0x00000007 > > MES_KIQ feature version: 0, firmware version: 0x00000000 > > MES feature version: 0, firmware version: 0x00000000 > > VPE feature version: 0, firmware version: 0x00000000 > > VBIOS version: 102-RAPHAEL-008 > > > > I forgot to add output for discrete GPU: > > > sudo cat /sys/kernel/debug/dri/1/amdgpu_firmware_info > [sudo] password for mikhail: > VCE feature version: 0, firmware version: 0x00000000 > UVD feature version: 0, firmware version: 0x00000000 > MC feature version: 0, firmware version: 0x00000000 > ME feature version: 44, firmware version: 0x00000040 > PFP feature version: 44, firmware version: 0x00000062 > CE feature version: 44, firmware version: 0x00000025 > RLC feature version: 1, firmware version: 0x00000060 > RLC SRLC feature version: 0, firmware version: 0x00000000 > RLC SRLG feature version: 0, firmware version: 0x00000000 > RLC SRLS feature version: 0, firmware version: 0x00000000 > RLCP feature version: 0, firmware version: 0x00000000 > RLCV feature version: 0, firmware version: 0x00000000 > MEC feature version: 44, firmware version: 0x00000076 > MEC2 feature version: 44, firmware version: 0x00000076 > IMU feature version: 0, firmware version: 0x00000000 > SOS feature version: 0, firmware version: 0x00210e64 > ASD feature version: 553648345, firmware version: 0x210000d9 > TA XGMI feature version: 0x00000000, firmware version: 0x2000000f > TA RAS feature version: 0x00000000, firmware version: 0x1b00013e > TA HDCP feature version: 0x00000000, firmware version: 0x1700003f > TA DTM feature version: 0x00000000, firmware version: 0x12000016 > TA RAP feature version: 0x00000000, firmware version: 0x07000016 > TA SECUREDISPLAY feature version: 0x00000000, firmware version: 0x00000000 > SMC feature version: 0, program: 0, firmware version: 0x003a5a00 (58.90.0) > SDMA0 feature version: 52, firmware version: 0x00000053 > SDMA1 feature version: 52, firmware version: 0x00000053 > SDMA2 feature version: 52, firmware version: 0x00000053 > SDMA3 feature version: 52, firmware version: 0x00000053 > VCN feature version: 0, firmware version: 0x0311f002 > DMCU feature version: 0, firmware version: 0x00000000 > DMCUB feature version: 0, firmware version: 0x02020020 > TOC feature version: 0, firmware version: 0x00000000 > MES_KIQ feature version: 0, firmware version: 0x00000000 > MES feature version: 0, firmware version: 0x00000000 > VPE feature version: 0, firmware version: 0x00000000 > VBIOS version: 113-D4120100-100 > > > -- > Best Regards, > Mike Gavrilov.
From 8aaf8da07a8b542c0a0f4da2601da07beddfdeb0 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Tue, 16 Jul 2024 12:49:25 -0400 Subject: [PATCH] drm/amd/display: fix corruption with high refresh rates on DCN 3.0 This reverts commit bc87d666c05a13e6d4ae1ddce41fc43d2567b9a2 and the register changes from commit 6d4279cb99ac4f51d10409501d29969f687ac8dc. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3478 Cc: mikhail.v.gavrilov@xxxxxxxxx Cc: Rodrigo Siqueira <Rodrigo.Siqueira@xxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> --- .../drm/amd/display/dc/optc/dcn10/dcn10_optc.c | 15 +++------------ .../drm/amd/display/dc/optc/dcn20/dcn20_optc.c | 10 ++++++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/optc/dcn10/dcn10_optc.c b/drivers/gpu/drm/amd/display/dc/optc/dcn10/dcn10_optc.c index 4f82146d94b1..f00d27b7c6fe 100644 --- a/drivers/gpu/drm/amd/display/dc/optc/dcn10/dcn10_optc.c +++ b/drivers/gpu/drm/amd/display/dc/optc/dcn10/dcn10_optc.c @@ -950,19 +950,10 @@ void optc1_set_drr( OTG_FORCE_LOCK_ON_EVENT, 0, OTG_SET_V_TOTAL_MIN_MASK_EN, 0, OTG_SET_V_TOTAL_MIN_MASK, 0); - - // Setup manual flow control for EOF via TRIG_A - optc->funcs->setup_manual_trigger(optc); - - } else { - REG_UPDATE_4(OTG_V_TOTAL_CONTROL, - OTG_SET_V_TOTAL_MIN_MASK, 0, - OTG_V_TOTAL_MIN_SEL, 0, - OTG_V_TOTAL_MAX_SEL, 0, - OTG_FORCE_LOCK_ON_EVENT, 0); - - optc->funcs->set_vtotal_min_max(optc, 0, 0); } + + // Setup manual flow control for EOF via TRIG_A + optc->funcs->setup_manual_trigger(optc); } void optc1_set_vtotal_min_max(struct timing_generator *optc, int vtotal_min, int vtotal_max) diff --git a/drivers/gpu/drm/amd/display/dc/optc/dcn20/dcn20_optc.c b/drivers/gpu/drm/amd/display/dc/optc/dcn20/dcn20_optc.c index 43417cff2c9b..b4694985a40a 100644 --- a/drivers/gpu/drm/amd/display/dc/optc/dcn20/dcn20_optc.c +++ b/drivers/gpu/drm/amd/display/dc/optc/dcn20/dcn20_optc.c @@ -453,6 +453,16 @@ void optc2_setup_manual_trigger(struct timing_generator *optc) { struct optc *optc1 = DCN10TG_FROM_TG(optc); + /* Set the min/max selectors unconditionally so that + * DMCUB fw may change OTG timings when necessary + * TODO: Remove the w/a after fixing the issue in DMCUB firmware + */ + REG_UPDATE_4(OTG_V_TOTAL_CONTROL, + OTG_V_TOTAL_MIN_SEL, 1, + OTG_V_TOTAL_MAX_SEL, 1, + OTG_FORCE_LOCK_ON_EVENT, 0, + OTG_SET_V_TOTAL_MIN_MASK, (1 << 1)); /* TRIGA */ + REG_SET_8(OTG_TRIGA_CNTL, 0, OTG_TRIGA_SOURCE_SELECT, 21, OTG_TRIGA_SOURCE_PIPE_SELECT, optc->inst, -- 2.45.2