From cbc3f236d728451cd68b92e2ce46418a17f72f4e Mon Sep 17 00:00:00 2001 From: jsg Date: Fri, 16 Jun 2023 00:46:08 +0000 Subject: [PATCH] drm/amd/display: hpd rx irq not working with eDP interface From Robin Chen 28ee628fff1e72ad9629168250071a05b7ba1043 in linux-6.1.y/6.1.31 eeefe7c4820b6baa0462a8b723ea0a3b5846ccae in mainline linux --- sys/dev/pci/drm/amd/display/dc/core/dc_link.c | 9 +++++++-- sys/dev/pci/drm/amd/display/dc/dc_types.h | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/sys/dev/pci/drm/amd/display/dc/core/dc_link.c b/sys/dev/pci/drm/amd/display/dc/core/dc_link.c index 5f285c5ea69..13598a2afb6 100644 --- a/sys/dev/pci/drm/amd/display/dc/core/dc_link.c +++ b/sys/dev/pci/drm/amd/display/dc/core/dc_link.c @@ -1634,14 +1634,18 @@ static bool dc_link_construct_legacy(struct dc_link *link, link->irq_source_hpd = DC_IRQ_SOURCE_INVALID; switch (link->dc->config.allow_edp_hotplug_detection) { - case 1: // only the 1st eDP handles hotplug + case HPD_EN_FOR_ALL_EDP: + link->irq_source_hpd_rx = + dal_irq_get_rx_source(link->hpd_gpio); + break; + case HPD_EN_FOR_PRIMARY_EDP_ONLY: if (link->link_index == 0) link->irq_source_hpd_rx = dal_irq_get_rx_source(link->hpd_gpio); else link->irq_source_hpd = DC_IRQ_SOURCE_INVALID; break; - case 2: // only the 2nd eDP handles hotplug + case HPD_EN_FOR_SECONDARY_EDP_ONLY: if (link->link_index == 1) link->irq_source_hpd_rx = dal_irq_get_rx_source(link->hpd_gpio); @@ -1649,6 +1653,7 @@ static bool dc_link_construct_legacy(struct dc_link *link, link->irq_source_hpd = DC_IRQ_SOURCE_INVALID; break; default: + link->irq_source_hpd = DC_IRQ_SOURCE_INVALID; break; } } diff --git a/sys/dev/pci/drm/amd/display/dc/dc_types.h b/sys/dev/pci/drm/amd/display/dc/dc_types.h index ad9041472cc..6050a3469a5 100644 --- a/sys/dev/pci/drm/amd/display/dc/dc_types.h +++ b/sys/dev/pci/drm/amd/display/dc/dc_types.h @@ -993,4 +993,10 @@ struct display_endpoint_id { enum display_endpoint_type ep_type; }; +enum dc_hpd_enable_select { + HPD_EN_FOR_ALL_EDP = 0, + HPD_EN_FOR_PRIMARY_EDP_ONLY, + HPD_EN_FOR_SECONDARY_EDP_ONLY, +}; + #endif /* DC_TYPES_H_ */ -- 2.20.1