aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5300-drm-amd-display-add-query-HPD-interface.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5300-drm-amd-display-add-query-HPD-interface.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/5300-drm-amd-display-add-query-HPD-interface.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5300-drm-amd-display-add-query-HPD-interface.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5300-drm-amd-display-add-query-HPD-interface.patch
new file mode 100644
index 00000000..c2dc7a89
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5300-drm-amd-display-add-query-HPD-interface.patch
@@ -0,0 +1,63 @@
+From 7002835db76e88eeba934b78e8e6ecb2e5937d96 Mon Sep 17 00:00:00 2001
+From: Chiawen Huang <chiawen.huang@amd.com>
+Date: Wed, 5 Sep 2018 20:34:57 +0800
+Subject: [PATCH 5300/5725] drm/amd/display: add query HPD interface.
+
+[Why]
+current dc_link_detect function is not only detection but also update some link data.
+
+[How]
+added a pure get HPD state function.
+
+Signed-off-by: Chiawen Huang <chiawen.huang@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link.c | 18 ++++++++++++++++++
+ drivers/gpu/drm/amd/display/dc/dc_link.h | 1 +
+ 2 files changed, 19 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+index 960521ce..2dfdcc9 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+@@ -890,6 +890,24 @@ bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason)
+ return true;
+ }
+
++bool dc_link_get_hpd_state(struct dc_link *dc_link)
++{
++ struct gpio *hpd_pin;
++ uint32_t state;
++
++ hpd_pin = get_hpd_gpio(dc_link->ctx->dc_bios,
++ dc_link->link_id, dc_link->ctx->gpio_service);
++ if (hpd_pin == NULL)
++ ASSERT(false);
++
++ dal_gpio_open(hpd_pin, GPIO_MODE_INTERRUPT);
++ dal_gpio_get_value(hpd_pin, &state);
++ dal_gpio_close(hpd_pin);
++ dal_gpio_destroy_irq(&hpd_pin);
++
++ return state;
++}
++
+ static enum hpd_source_id get_hpd_line(
+ struct dc_link *link)
+ {
+diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h
+index 1794764..4daec70 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc_link.h
++++ b/drivers/gpu/drm/amd/display/dc/dc_link.h
+@@ -167,6 +167,7 @@ enum dc_detect_reason {
+ };
+
+ bool dc_link_detect(struct dc_link *dc_link, enum dc_detect_reason reason);
++bool dc_link_get_hpd_state(struct dc_link *dc_link);
+
+ /* Notify DC about DP RX Interrupt (aka Short Pulse Interrupt).
+ * Return:
+--
+2.7.4
+