AMD General
Hey,
Nice catch it looks like the init order is incorrect. Strange we never saw any
crashes, that log wasn't used by anyone it seems.
The fix would be to redefine DC_LOGGER so we have ctx available in
get_ss_info_from_atombios(). We can redefine the DC_LOGGER to use
clk_src->base.ctx->logger (like you mentioned) since clk_src is available
everywhere.
Thanks,
Bhawan
________________________________
From: Jiri Slaby <[email protected]>
Sent: July 15, 2026 4:51 AM
To: Lakha, Bhawanpreet <[email protected]>; Wentland, Harry
<[email protected]>
Cc: Li, Sun peng (Leo) <[email protected]>; [email protected]
<[email protected]>; Deucher, Alexander <[email protected]>; Cheng,
Tony <[email protected]>; [email protected]
<[email protected]>; DRI devel <[email protected]>;
Thomas Zimmermann <[email protected]>
Subject: amdgpu crashes in get_ss_info_from_atombios()
Hi,
SUSE received a bug report:
https://bugzilla.suse.com/show_bug.cgi?id=1271175
get_ss_info_from_atombios() crashes in 7.1.2.
calc_pll_cs->ctx (dc_context) is NULL while trying to log by the first
DC_LOG_SYNC() in get_ss_info_from_atombios():
if (as_signal == AS_SIGNAL_TYPE_HDMI
&&
ss_info_cur->spread_spectrum_percentage > 6){
/* invalid input, do nothing */
DC_LOG_SYNC(
"Invalid SS percentage ");
DC_LOG_SYNC(
"for HDMI in ATOMBIOS info Table!!!\n");
continue;
}
Note dce110_clk_src_construct() calls:
-> ss_info_from_atombios_create()
-> get_ss_info_from_atombios() <- uses calc_pll_cs->ctx
-> calc_pll_max_vco_construct() <- sets calc_pll_cs->ctx AFAICT
calc_pll_cs->ctx should not be used in the former, or something.
This was likely introduced by:
commit 1296423bf23c7a58133970e223b1f47ec6570308
Author: Bhawanpreet Lakha <[email protected]>
Date: Tue Feb 20 17:42:50 2018 -0500
drm/amd/display: define DC_LOGGER for logger
Before the commit,
clk_src->base.ctx->logger
was used in get_ss_info_from_atombios(). The commit unified all users to
use:
clk_src->ctx->logger
The former is set at the beginning of dce110_clk_src_construct() (before
the crash location). The latter only in calc_pll_max_vco_construct()
(after the crash location).
Any ideas how to fix this? Redefine DC_LOGGER to clk_src->base in
get_ss_info_from_atombios()?
I'm not sure if this is a regression and there is some underlying issue
provoking the "Invalid SS percentage" dump -- asked in the bug and
waiting for a reply.
thanks,
--
js
suse labs