drm/amd/display: Allow 4 split on 10K 420 modes
[Why] 10K YCbCr420 does not need ODM 4:1, but it requires MPC 4 split indicated on the flags. [How] Make pixel encoding and resolution size specific workaround to enable ODM combine on YCbCr420 high resolution modes. Signed-off-by: Chris Park <Chris.Park@amd.com> Reviewed-by: Charlene Liu <Charlene.Liu@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7715fdf336
commit
5e90801298
|
@ -2745,6 +2745,11 @@ int dcn20_validate_apply_pipe_split_flags(
|
|||
split[i] = 4;
|
||||
v->ODMCombineEnablePerState[vlevel][pipe_plane] = dm_odm_combine_mode_4to1;
|
||||
}
|
||||
/*420 format workaround*/
|
||||
if (pipe->stream->timing.h_addressable > 7680 &&
|
||||
pipe->stream->timing.pixel_encoding == PIXEL_ENCODING_YCBCR420) {
|
||||
split[i] = 4;
|
||||
}
|
||||
#endif
|
||||
v->ODMCombineEnabled[pipe_plane] =
|
||||
v->ODMCombineEnablePerState[vlevel][pipe_plane];
|
||||
|
|
|
@ -3986,11 +3986,6 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
|||
} else if (v->PlaneRequiredDISPCLKWithoutODMCombine > v->MaxDispclkRoundedDownToDFSGranularity) {
|
||||
v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
|
||||
v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
|
||||
/*420 format workaround*/
|
||||
if (v->HActive[k] > 7680 && v->OutputFormat[k] == dm_420) {
|
||||
v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_2to1;
|
||||
v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithODMCombine2To1;
|
||||
}
|
||||
} else {
|
||||
v->ODMCombineEnablePerState[i][k] = dm_odm_combine_mode_disabled;
|
||||
v->PlaneRequiredDISPCLK = v->PlaneRequiredDISPCLKWithoutODMCombine;
|
||||
|
|
Loading…
Reference in New Issue