aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4934-drm-amd-display-Return-out_link_loss-from-interrupt-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4934-drm-amd-display-Return-out_link_loss-from-interrupt-.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4934-drm-amd-display-Return-out_link_loss-from-interrupt-.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4934-drm-amd-display-Return-out_link_loss-from-interrupt-.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4934-drm-amd-display-Return-out_link_loss-from-interrupt-.patch
new file mode 100644
index 00000000..70a689ea
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4934-drm-amd-display-Return-out_link_loss-from-interrupt-.patch
@@ -0,0 +1,77 @@
+From 43af800ebea195283e0f5f06f83f97093bd9fd6e Mon Sep 17 00:00:00 2001
+From: Fatemeh Darbehani <fatemeh.darbehani@amd.com>
+Date: Tue, 26 Jun 2018 16:40:55 -0400
+Subject: [PATCH 4934/5725] drm/amd/display: Return out_link_loss from
+ interrupt handler
+
+Signed-off-by: Fatemeh Darbehani <fatemeh.darbehani@amd.com>
+Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Raveendra Talabattula <raveendra.talabattula@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 8 +++++++-
+ drivers/gpu/drm/amd/display/dc/dc_link.h | 2 +-
+ 3 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index d52d004..8ab7a99 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -1141,7 +1141,7 @@ static void handle_hpd_rx_irq(void *param)
+ if (dc_link->type != dc_connection_mst_branch)
+ mutex_lock(&aconnector->hpd_lock);
+
+- if (dc_link_handle_hpd_rx_irq(dc_link, NULL) &&
++ if (dc_link_handle_hpd_rx_irq(dc_link, NULL, NULL) &&
+ !is_mst_root_connector) {
+ /* Downstream Port status changed. */
+ if (!dc_link_detect_sink(dc_link, &new_connection_type))
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+index 165618f..fd73a9c 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+@@ -1994,12 +1994,16 @@ static void handle_automated_test(struct dc_link *link)
+ sizeof(test_response));
+ }
+
+-bool dc_link_handle_hpd_rx_irq(struct dc_link *link, union hpd_irq_data *out_hpd_irq_dpcd_data)
++bool dc_link_handle_hpd_rx_irq(struct dc_link *link, union hpd_irq_data *out_hpd_irq_dpcd_data, bool *out_link_loss)
+ {
+ union hpd_irq_data hpd_irq_dpcd_data = {{{{0}}}};
+ union device_service_irq device_service_clear = { { 0 } };
+ enum dc_status result;
++
+ bool status = false;
++
++ if (out_link_loss)
++ *out_link_loss = false;
+ /* For use cases related to down stream connection status change,
+ * PSR and device auto test, refer to function handle_sst_hpd_irq
+ * in DAL2.1*/
+@@ -2074,6 +2078,8 @@ bool dc_link_handle_hpd_rx_irq(struct dc_link *link, union hpd_irq_data *out_hpd
+ true, LINK_TRAINING_ATTEMPTS);
+
+ status = false;
++ if (out_link_loss)
++ *out_link_loss = true;
+ }
+
+ if (link->type == dc_connection_active_dongle &&
+diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h
+index 795a8f0..2351681 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc_link.h
++++ b/drivers/gpu/drm/amd/display/dc/dc_link.h
+@@ -172,7 +172,7 @@ bool dc_link_detect(struct dc_link *dc_link, enum dc_detect_reason reason);
+ * false - no change in Downstream port status. No further action required
+ * from DM. */
+ bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link,
+- union hpd_irq_data *hpd_irq_dpcd_data);
++ union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss);
+
+ struct dc_sink_init_data;
+
+--
+2.7.4
+