]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Fallback to boot snapshot for dispclk
authorDillon Varone <Dillon.Varone@amd.com>
Wed, 18 Feb 2026 19:34:28 +0000 (14:34 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 2 Mar 2026 22:13:52 +0000 (17:13 -0500)
[WHY & HOW]
If the dentist is unavailable, fallback to reading CLKIP via the boot
snapshot to get the current dispclk.

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Dillon Varone <Dillon.Varone@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 2ab77600d1e55a042c02437326d3c7563e853c6c)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c

index b91517b9fedcf203c6f353cd232a271282a32431..eb198d52a1155c72f80ec1e728c6fba0a0cfcfdd 100644 (file)
@@ -72,7 +72,11 @@ void dcn401_initialize_min_clocks(struct dc *dc)
                 * audio corruption. Read current DISPCLK from DENTIST and request the same
                 * freq to ensure that the timing is valid and unchanged.
                 */
-               clocks->dispclk_khz = dc->clk_mgr->funcs->get_dispclk_from_dentist(dc->clk_mgr);
+               if (dc->clk_mgr->funcs->get_dispclk_from_dentist) {
+                       clocks->dispclk_khz = dc->clk_mgr->funcs->get_dispclk_from_dentist(dc->clk_mgr);
+               } else {
+                       clocks->dispclk_khz = dc->clk_mgr->boot_snapshot.dispclk * 1000;
+               }
        }
        clocks->ref_dtbclk_khz = dc->clk_mgr->bw_params->clk_table.entries[0].dtbclk_mhz * 1000;
        clocks->fclk_p_state_change_support = true;