From: Dillon Varone <dillon.var...@amd.com>

[WHY & HOW]
If the output format is different for HDMI TMDS signals, they are not
synchronizable.

Cc: Mario Limonciello <mario.limoncie...@amd.com>
Cc: Alex Deucher <alexander.deuc...@amd.com>
Cc: sta...@vger.kernel.org
Reviewed-by: Alvin Lee <alvin.l...@amd.com>
Signed-off-by: Dillon Varone <dillon.var...@amd.com>
Signed-off-by: Alex Hung <alex.h...@amd.com>
---
 .../dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c      | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git 
a/drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c 
b/drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c
index d63558ee3135..1cf9015e854a 100644
--- 
a/drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c
+++ 
b/drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c
@@ -940,9 +940,11 @@ static void build_synchronized_timing_groups(
                /* find synchronizable timing groups */
                for (j = i + 1; j < display_config->display_config.num_streams; 
j++) {
                        if (memcmp(master_timing,
-                               
&display_config->display_config.stream_descriptors[j].timing,
-                               sizeof(struct dml2_timing_cfg)) == 0 &&
-                               
display_config->display_config.stream_descriptors[i].output.output_encoder == 
display_config->display_config.stream_descriptors[j].output.output_encoder) {
+                                       
&display_config->display_config.stream_descriptors[j].timing,
+                                       sizeof(struct dml2_timing_cfg)) == 0 &&
+                                       
display_config->display_config.stream_descriptors[i].output.output_encoder == 
display_config->display_config.stream_descriptors[j].output.output_encoder &&
+                                       
(display_config->display_config.stream_descriptors[i].output.output_encoder != 
dml2_hdmi || //hdmi requires formats match
+                                       
display_config->display_config.stream_descriptors[i].output.output_format == 
display_config->display_config.stream_descriptors[j].output.output_format)) {
                                
set_bit_in_bitfield(&pmo->scratch.pmo_dcn4.synchronized_timing_group_masks[timing_group_idx],
 j);
                                set_bit_in_bitfield(&stream_mapped_mask, j);
                        }
-- 
2.34.1

Reply via email to