diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0763-drm-amd-dal-Add-hpd-filter-delay-for-DP-hotplug.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0763-drm-amd-dal-Add-hpd-filter-delay-for-DP-hotplug.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0763-drm-amd-dal-Add-hpd-filter-delay-for-DP-hotplug.patch b/common/recipes-kernel/linux/files/0763-drm-amd-dal-Add-hpd-filter-delay-for-DP-hotplug.patch new file mode 100644 index 00000000..ccec282a --- /dev/null +++ b/common/recipes-kernel/linux/files/0763-drm-amd-dal-Add-hpd-filter-delay-for-DP-hotplug.patch @@ -0,0 +1,84 @@ +From 0fda37e836873f9f2e2cbaa244d43d929d20a760 Mon Sep 17 00:00:00 2001 +From: Jordan Lazare <Jordan.Lazare@amd.com> +Date: Tue, 2 Feb 2016 17:28:12 -0500 +Subject: [PATCH 0763/1110] drm/amd/dal: Add hpd filter delay for DP hotplug + +Signed-off-by: Jordan Lazare <Jordan.Lazare@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 25 ++++++++++++++----------- + 1 file changed, 14 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +index 2db5147..b0ef028 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +@@ -45,9 +45,6 @@ + LOG_MAJOR_HW_TRACE, LOG_MINOR_HW_TRACE_HOTPLUG, \ + __VA_ARGS__) + +-#define DELAY_ON_CONNECT_IN_MS 500 +-#define DELAY_ON_DISCONNECT_IN_MS 100 +- + + /******************************************************************************* + * Private structures +@@ -89,20 +86,28 @@ static bool program_hpd_filter( + + struct irq *hpd; + +- /* Verify feature is supported */ ++ int delay_on_connect_in_ms = 0; ++ int delay_on_disconnect_in_ms = 0; + ++ /* Verify feature is supported */ + switch (link->public.connector_signal) { + case SIGNAL_TYPE_DVI_SINGLE_LINK: + case SIGNAL_TYPE_DVI_DUAL_LINK: + case SIGNAL_TYPE_HDMI_TYPE_A: +- /* program hpd filter */ ++ /* Program hpd filter */ ++ delay_on_connect_in_ms = 500; ++ delay_on_disconnect_in_ms = 100; + break; +- case SIGNAL_TYPE_LVDS: + case SIGNAL_TYPE_DISPLAY_PORT: + case SIGNAL_TYPE_DISPLAY_PORT_MST: ++ /* Program hpd filter to allow DP signal to settle */ ++ delay_on_connect_in_ms = 20; ++ delay_on_disconnect_in_ms = 0; ++ break; ++ case SIGNAL_TYPE_LVDS: + case SIGNAL_TYPE_EDP: + default: +- /* don't program hpd filter */ ++ /* Don't program hpd filter */ + return false; + } + +@@ -114,12 +119,11 @@ static bool program_hpd_filter( + return result; + + /* Setup HPD filtering */ +- + if (dal_irq_open(hpd) == GPIO_RESULT_OK) { + struct gpio_hpd_config config; + +- config.delay_on_connect = DELAY_ON_CONNECT_IN_MS; +- config.delay_on_disconnect = DELAY_ON_DISCONNECT_IN_MS; ++ config.delay_on_connect = delay_on_connect_in_ms; ++ config.delay_on_disconnect = delay_on_disconnect_in_ms; + + dal_irq_setup_hpd_filter(hpd, &config); + +@@ -131,7 +135,6 @@ static bool program_hpd_filter( + } + + /* Release HPD handle */ +- + dal_adapter_service_release_irq(link->adapter_srv, hpd); + + return result; +-- +2.7.4 + |