aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0763-drm-amd-dal-Add-hpd-filter-delay-for-DP-hotplug.patch
diff options
context:
space:
mode:
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.patch84
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
+