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