]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/amd/display: Adjust reg field for DSC wait for disconnect
authorRyan Seto <ryanseto@amd.com>
Fri, 14 Jun 2024 18:56:15 +0000 (14:56 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 27 Jun 2024 21:10:38 +0000 (17:10 -0400)
[WHY]
DSC was waiting for the wrong field to disconnect cleanly.

[HOW]
Changed field the DSC disconnect was waiting on.

Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Ryan Seto <ryanseto@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dsc/dcn20/dcn20_dsc.h
drivers/gpu/drm/amd/display/dc/dsc/dcn401/dcn401_dsc.c
drivers/gpu/drm/amd/display/dc/dsc/dcn401/dcn401_dsc.h

index a23308a785bca31243e57bfa372306958864eced..1fb90b52b814bca0b3dec30de7534e553451507a 100644 (file)
        type DSCCIF_UPDATE_TAKEN_ACK; \
        type DSCRM_DSC_FORWARD_EN; \
        type DSCRM_DSC_OPP_PIPE_SOURCE; \
-       type DSCRM_DSC_DOUBLE_BUFFER_REG_UPDATE_PENDING
+       type DSCRM_DSC_DOUBLE_BUFFER_REG_UPDATE_PENDING; \
+       type DSCRM_DSC_FORWARD_EN_STATUS
+
 
 struct dcn20_dsc_registers {
        uint32_t DSC_TOP_CONTROL;
index 52f23bb554af908aaee604c9f7d7e36e6179b347..6acb6699f146ec4f12abc9bc187348690515c88d 100644 (file)
@@ -208,7 +208,7 @@ static void dsc401_wait_disconnect_pending_clear(struct display_stream_compresso
 {
        struct dcn401_dsc *dsc401 = TO_DCN401_DSC(dsc);
 
-       REG_WAIT(DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_DOUBLE_BUFFER_REG_UPDATE_PENDING, 0, 2, 50000);
+       REG_WAIT(DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_FORWARD_EN_STATUS, 0, 2, 50000);
 }
 
 static void dsc401_disconnect(struct display_stream_compressor *dsc)
index 2143e81ca22ab990673be513584c533262d9037a..3c9fa8988974f08f2331b3e1a1fc470267c5e754 100644 (file)
        DSC2_SF(DSCCIF0, DSCCIF_CONFIG0__BITS_PER_COMPONENT, mask_sh), \
        DSC_SF(DSCCIF0_DSCCIF_CONFIG0, DOUBLE_BUFFER_REG_UPDATE_PENDING, mask_sh), \
        DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_FORWARD_EN, mask_sh), \
-       DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_OPP_PIPE_SOURCE, mask_sh)
+       DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_OPP_PIPE_SOURCE, mask_sh), \
+       DSC_SF(DSCRM0_DSCRM_DSC_FORWARD_CONFIG, DSCRM_DSC_FORWARD_EN_STATUS, mask_sh)
 
 struct dcn401_dsc_registers {
        uint32_t DSC_TOP_CONTROL;