[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>
                        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];
 
                                } 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;