drm/amd/display: add config option for eDP hotplug detection
authorYi-Ling Chen <Yi-Ling.Chen2@amd.com>
Mon, 31 May 2021 19:21:47 +0000 (03:21 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Jun 2021 21:25:40 +0000 (17:25 -0400)
[Why]
Some custom platforms use eDP hotplug events to notify panel
capability changes that should be reported

[How]
Add a DC config option that unblocks eDP hotplug events

Signed-off-by: Yi-Ling Chen <Yi-Ling.Chen2@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Anson Jacob <Anson.Jacob@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c
drivers/gpu/drm/amd/display/dc/dc.h

index 0f91280..33e83c0 100644 (file)
@@ -904,9 +904,10 @@ static bool dc_link_detect_helper(struct dc_link *link,
        if (dc_is_virtual_signal(link->connector_signal))
                return false;
 
-       if ((link->connector_signal == SIGNAL_TYPE_LVDS ||
-            link->connector_signal == SIGNAL_TYPE_EDP) &&
-           link->local_sink) {
+       if (((link->connector_signal == SIGNAL_TYPE_LVDS ||
+               link->connector_signal == SIGNAL_TYPE_EDP) &&
+               (!link->dc->config.allow_edp_hotplug_detection)) &&
+               link->local_sink) {
                // need to re-write OUI and brightness in resume case
                if (link->connector_signal == SIGNAL_TYPE_EDP) {
                        dpcd_set_source_specific_data(link);
@@ -1501,7 +1502,8 @@ static bool dc_link_construct(struct dc_link *link,
                link->connector_signal = SIGNAL_TYPE_EDP;
 
                if (link->hpd_gpio) {
-                       link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
+                       if (!link->dc->config.allow_edp_hotplug_detection)
+                               link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
                        link->irq_source_hpd_rx =
                                        dal_irq_get_rx_source(link->hpd_gpio);
                }
index a706978..6470eee 100644 (file)
@@ -303,6 +303,7 @@ struct dc_config {
        bool multi_mon_pp_mclk_switch;
        bool disable_dmcu;
        bool enable_4to1MPC;
+       bool allow_edp_hotplug_detection;
 #if defined(CONFIG_DRM_AMD_DC_DCN)
        bool clamp_min_dcfclk;
 #endif