Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: fix dcn3 wide timing dsc validation

Wide timing DSC requires odm. Since spreadsheet is missing this dsc
validation we have to modify DML vba code ourselves.

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Wesley Chalmers <Wesley.Chalmers@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Dmytro Laktyushkin and committed by
Alex Deucher
5ec37c08 8e80d482

+4
+4
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
··· 63 63 64 64 #define BPP_INVALID 0 65 65 #define BPP_BLENDED_PIPE 0xffffffff 66 + #define DCN30_MAX_DSC_IMAGE_WIDTH 5184 66 67 67 68 static void DisplayPipeConfiguration(struct display_mode_lib *mode_lib); 68 69 static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanceCalculation( ··· 3983 3982 v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_4to1; 3984 3983 v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine4To1; 3985 3984 } else if (v->PlaneRequiredDISPCLKWithoutODMCombine > v->MaxDispclkRoundedDownToDFSGranularity) { 3985 + v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1; 3986 + v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1; 3987 + } else if (v->DSCEnabled[k] && (v->HActive[k] > DCN30_MAX_DSC_IMAGE_WIDTH)) { 3986 3988 v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1; 3987 3989 v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1; 3988 3990 } else {