diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/0796-drm-amd-dal-register-eDP-short-pulse-interrupt.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/files/0796-drm-amd-dal-register-eDP-short-pulse-interrupt.patch | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/0796-drm-amd-dal-register-eDP-short-pulse-interrupt.patch b/meta-amdfalconx86/recipes-kernel/linux/files/0796-drm-amd-dal-register-eDP-short-pulse-interrupt.patch deleted file mode 100644 index dffda030..00000000 --- a/meta-amdfalconx86/recipes-kernel/linux/files/0796-drm-amd-dal-register-eDP-short-pulse-interrupt.patch +++ /dev/null @@ -1,167 +0,0 @@ -From d96fb309addb53fbde1efb54dc233c6ac753d4d1 Mon Sep 17 00:00:00 2001 -From: Mykola Lysenko <Mykola.Lysenko@amd.com> -Date: Mon, 4 Jan 2016 14:46:01 +0800 -Subject: [PATCH 0796/1110] drm/amd/dal: register eDP short pulse interrupt - -Registration of short pulse interrupt was missed for eDP -case, because of guard for HPD registration for embedded -panels. - -Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com> -Acked-by: Harry Wentland <harry.wentland@amd.com> ---- - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 12 ++++---- - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c | 15 +++------- - drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 36 ++++++++++------------- - 3 files changed, 27 insertions(+), 36 deletions(-) - -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -index 0061b8c..7a7f69e 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -@@ -959,12 +959,14 @@ static void register_hpd_handlers(struct amdgpu_device *adev) - aconnector = to_amdgpu_connector(connector); - dc_link = aconnector->dc_link; - -- int_params.int_context = INTERRUPT_LOW_IRQ_CONTEXT; -- int_params.irq_source = dc_link->irq_source_hpd; -+ if (DC_IRQ_SOURCE_INVALID != dc_link->irq_source_hpd) { -+ int_params.int_context = INTERRUPT_LOW_IRQ_CONTEXT; -+ int_params.irq_source = dc_link->irq_source_hpd; - -- amdgpu_dm_irq_register_interrupt(adev, &int_params, -- handle_hpd_irq, -- (void *) aconnector); -+ amdgpu_dm_irq_register_interrupt(adev, &int_params, -+ handle_hpd_irq, -+ (void *) aconnector); -+ } - - if (DC_IRQ_SOURCE_INVALID != dc_link->irq_source_hpd_rx) { - -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c -index 2ba79ab..d04ed18 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_irq.c -@@ -770,19 +770,12 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev) - - const struct dc_link *dc_link = amdgpu_connector->dc_link; - -- if (connector->connector_type == DRM_MODE_CONNECTOR_eDP || -- connector->connector_type == DRM_MODE_CONNECTOR_LVDS) { -- /* don't try to enable hpd on eDP or LVDS avoid breaking -- * the aux dp channel on imac and help (but not -- * completely fix) -- * https://bugzilla.redhat.com/show_bug.cgi?id=726143 -- * also avoid interrupt storms during dpms. -- */ -- continue; -+ if (DC_IRQ_SOURCE_INVALID != dc_link->irq_source_hpd) { -+ dc_interrupt_set(adev->dm.dc, -+ dc_link->irq_source_hpd, -+ true); - } - -- dc_interrupt_set(adev->dm.dc, dc_link->irq_source_hpd, true); -- - if (DC_IRQ_SOURCE_INVALID != dc_link->irq_source_hpd_rx) { - dc_interrupt_set(adev->dm.dc, - dc_link->irq_source_hpd_rx, -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 5fd5800..d9b76f6 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c -@@ -885,7 +885,6 @@ static enum transmitter translate_encoder_to_transmitter( - } - } - -- - static bool construct( - struct core_link *link, - const struct link_init_data *init_params) -@@ -898,6 +897,9 @@ static bool construct( - struct encoder_init_data enc_init_data = { 0 }; - struct integrated_info info = {{{ 0 }}}; - -+ link->public.irq_source_hpd = DC_IRQ_SOURCE_INVALID; -+ link->public.irq_source_hpd_rx = DC_IRQ_SOURCE_INVALID; -+ - link->dc = init_params->dc; - link->adapter_srv = as; - link->ctx = dc_ctx; -@@ -913,9 +915,15 @@ static bool construct( - goto create_fail; - } - -+ hpd_gpio = dal_adapter_service_obtain_hpd_irq(as, link->link_id); -+ -+ if (hpd_gpio != NULL) -+ link->public.irq_source_hpd = dal_irq_get_source(hpd_gpio); -+ - switch (link->link_id.id) { - case CONNECTOR_ID_HDMI_TYPE_A: - link->public.connector_signal = SIGNAL_TYPE_HDMI_TYPE_A; -+ - break; - case CONNECTOR_ID_SINGLE_LINK_DVID: - case CONNECTOR_ID_SINGLE_LINK_DVII: -@@ -927,29 +935,19 @@ static bool construct( - break; - case CONNECTOR_ID_DISPLAY_PORT: - link->public.connector_signal = SIGNAL_TYPE_DISPLAY_PORT; -- hpd_gpio = dal_adapter_service_obtain_hpd_irq( -- as, -- link->link_id); - -- if (hpd_gpio != NULL) { -+ if (hpd_gpio != NULL) - link->public.irq_source_hpd_rx = - dal_irq_get_rx_source(hpd_gpio); -- dal_adapter_service_release_irq( -- as, hpd_gpio); -- } - - break; - case CONNECTOR_ID_EDP: - link->public.connector_signal = SIGNAL_TYPE_EDP; -- hpd_gpio = dal_adapter_service_obtain_hpd_irq( -- as, -- link->link_id); - - if (hpd_gpio != NULL) { -+ link->public.irq_source_hpd = DC_IRQ_SOURCE_INVALID; - link->public.irq_source_hpd_rx = - dal_irq_get_rx_source(hpd_gpio); -- dal_adapter_service_release_irq( -- as, hpd_gpio); - } - break; - default: -@@ -959,19 +957,17 @@ static bool construct( - goto create_fail; - } - -+ if (hpd_gpio != NULL) { -+ dal_adapter_service_release_irq( -+ as, hpd_gpio); -+ } -+ - /* TODO: #DAL3 Implement id to str function.*/ - LINK_INFO("Connector[%d] description:" - "signal %d\n", - init_params->connector_index, - link->public.connector_signal); - -- hpd_gpio = dal_adapter_service_obtain_hpd_irq(as, link->link_id); -- -- if (hpd_gpio != NULL) { -- link->public.irq_source_hpd = dal_irq_get_source(hpd_gpio); -- dal_adapter_service_release_irq(as, hpd_gpio); -- } -- - ddc_service_init_data.as = as; - ddc_service_init_data.ctx = link->ctx; - ddc_service_init_data.id = link->link_id; --- -2.7.4 - |