diff options
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-.patch | 77 |
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 + |