On 8/21/26 16:50, Timur Kristóf wrote:
After a refactor that landed in Linux 7.0,
DC now crashes when it is initialized on GPUs
that have a VGA or LVDS connector. This is because
these connectors have no HPD so the hpd_gpio is NULL
and therefore DC takes the code path meant for
DCN 4.2+ which sets irq_source_hpd = 255 that
causes the subsequent code to try to register
the HPD interrupt, which fails, and causes
a crash.

This commit should be backported to Linux 7.0 and newer.
Unfortunately 7.0.y is EoL.  But we'll get it in 7.1.y and later.


Cc: Dmytro Laktyushkin <[email protected]>
Cc: Roman Li <[email protected]>
Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/5490
Fixes: def3488eb0fd ("drm/amd/display: refactor HPD to increase flexibility")
Signed-off-by: Timur Kristóf <[email protected]>

Reviewed-by: Mario Limonciello (AMD) <[email protected]>

I'll get this committed to amd-staging-drm-next.
---
  drivers/gpu/drm/amd/display/dc/link/link_factory.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/link_factory.c 
b/drivers/gpu/drm/amd/display/dc/link/link_factory.c
index 8560ee727bfa..a83693ea43c0 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_factory.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_factory.c
@@ -643,7 +643,7 @@ static bool construct_phy(struct dc_link *link,
DC_LOG_DC("BIOS object table - hpd_gpio id: %d", enc_init_data.hpd_gpio->id);
                DC_LOG_DC("BIOS object table - hpd_gpio en: %d", 
enc_init_data.hpd_gpio->en);
-       } else {
+       } else if (link->ctx->dce_version > DCN_VERSION_4_01) {
                struct graphics_object_hpd_info hpd_info;
if (link->ctx->dc_bios->funcs->get_hpd_info(link->ctx->dc_bios, link->link_id, &hpd_info) == BP_RESULT_OK) {

Reply via email to