]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: Fix DMUB errors introduced by DML2
authorRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Fri, 20 Oct 2023 16:06:50 +0000 (10:06 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 26 Oct 2023 22:41:22 +0000 (18:41 -0400)
When DML 2 was introduced, it changed part of the generic sequence of
DC, which caused issues on previous DCNs with DMUB support. This commit
ensures the new sequence only works for new DCNs from 3.5 and above.

Changes since V1:
- Harry: Use the attribute using_dml2 instead of check the DCN version.

Cc: Vitaly Prosyak <vprosyak@amd.com>
Cc: Roman Li <roman.li@amd.com>
Cc: Qingqing Zhuo <Qingqing.Zhuo@amd.com>
Cc: Daniel Wheeler <daniel.wheeler@amd.com>
Cc: Alex Deucher <Alexander.Deucher@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Fixes: 7966f319c66d ("drm/amd/display: Introduce DML2")
Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index 97f402123fbba259bfb1fb8e3ae4818a9e2253ce..f9e472f08e21bbd15538fde6f491fcf3cbdcdfb2 100644 (file)
@@ -321,10 +321,11 @@ struct resource_pool *dc_create_resource_pool(struct dc  *dc,
                                res_pool->ref_clocks.xtalin_clock_inKhz;
                        res_pool->ref_clocks.dchub_ref_clock_inKhz =
                                res_pool->ref_clocks.xtalin_clock_inKhz;
-                       if (res_pool->hubbub && res_pool->hubbub->funcs->get_dchub_ref_freq)
-                               res_pool->hubbub->funcs->get_dchub_ref_freq(res_pool->hubbub,
-                                       res_pool->ref_clocks.dccg_ref_clock_inKhz,
-                                       &res_pool->ref_clocks.dchub_ref_clock_inKhz);
+                       if (dc->debug.using_dml2)
+                               if (res_pool->hubbub && res_pool->hubbub->funcs->get_dchub_ref_freq)
+                                       res_pool->hubbub->funcs->get_dchub_ref_freq(res_pool->hubbub,
+                                                                                   res_pool->ref_clocks.dccg_ref_clock_inKhz,
+                                                                                   &res_pool->ref_clocks.dchub_ref_clock_inKhz);
                } else
                        ASSERT_CRITICAL(false);
        }