diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0660-drm-amd-dal-Remove-connector.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0660-drm-amd-dal-Remove-connector.patch | 1170 |
1 files changed, 0 insertions, 1170 deletions
diff --git a/common/recipes-kernel/linux/files/0660-drm-amd-dal-Remove-connector.patch b/common/recipes-kernel/linux/files/0660-drm-amd-dal-Remove-connector.patch deleted file mode 100644 index 4255fbfe..00000000 --- a/common/recipes-kernel/linux/files/0660-drm-amd-dal-Remove-connector.patch +++ /dev/null @@ -1,1170 +0,0 @@ -From 4a73a01e394537a888a0842062d3c5f0eef5ddd6 Mon Sep 17 00:00:00 2001 -From: Harry Wentland <harry.wentland@amd.com> -Date: Thu, 17 Dec 2015 22:14:58 -0500 -Subject: [PATCH 0660/1110] drm/amd/dal: Remove connector - -We're programming hpd filter but no hpd polling. - -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Harry Wentland <Harry.Wentland@amd.com> ---- - drivers/gpu/drm/amd/dal/dc/Makefile | 2 +- - drivers/gpu/drm/amd/dal/dc/connector/Makefile | 10 - - drivers/gpu/drm/amd/dal/dc/connector/connector.h | 39 -- - .../gpu/drm/amd/dal/dc/connector/connector_base.c | 421 --------------------- - .../drm/amd/dal/dc/connector/connector_signals.c | 238 ------------ - drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 188 +++++++-- - drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c | 1 - - drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c | 1 - - drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 1 - - .../gpu/drm/amd/dal/include/connector_interface.h | 82 ---- - 10 files changed, 161 insertions(+), 822 deletions(-) - delete mode 100644 drivers/gpu/drm/amd/dal/dc/connector/Makefile - delete mode 100644 drivers/gpu/drm/amd/dal/dc/connector/connector.h - delete mode 100644 drivers/gpu/drm/amd/dal/dc/connector/connector_base.c - delete mode 100644 drivers/gpu/drm/amd/dal/dc/connector/connector_signals.c - delete mode 100644 drivers/gpu/drm/amd/dal/include/connector_interface.h - -diff --git a/drivers/gpu/drm/amd/dal/dc/Makefile b/drivers/gpu/drm/amd/dal/dc/Makefile -index 285e30d..0ab2c18 100644 ---- a/drivers/gpu/drm/amd/dal/dc/Makefile -+++ b/drivers/gpu/drm/amd/dal/dc/Makefile -@@ -2,7 +2,7 @@ - # Makefile for Display Core (dc) component. - # - --DC_LIBS = adapter asic_capability audio basics bios calcs connector \ -+DC_LIBS = adapter asic_capability audio basics bios calcs \ - dcs gpio gpu i2caux irq dce_base - - ifdef CONFIG_DRM_AMD_DAL_DCE11_0 -diff --git a/drivers/gpu/drm/amd/dal/dc/connector/Makefile b/drivers/gpu/drm/amd/dal/dc/connector/Makefile -deleted file mode 100644 -index ebd4115..0000000 ---- a/drivers/gpu/drm/amd/dal/dc/connector/Makefile -+++ /dev/null -@@ -1,10 +0,0 @@ --# --# Makefile for the 'connector' sub-component of DAL. --# It provides the control and status of HW connectors blocks. -- -- --CONNECTOR = connector_base.o connector_signals.o -- --AMD_DAL_CONNECTOR = $(addprefix $(AMDDALPATH)/dc/connector/,$(CONNECTOR)) -- --AMD_DAL_FILES += $(AMD_DAL_CONNECTOR) -diff --git a/drivers/gpu/drm/amd/dal/dc/connector/connector.h b/drivers/gpu/drm/amd/dal/dc/connector/connector.h -deleted file mode 100644 -index 7d6057b..0000000 ---- a/drivers/gpu/drm/amd/dal/dc/connector/connector.h -+++ /dev/null -@@ -1,39 +0,0 @@ --/* -- * Copyright 2012-15 Advanced Micro Devices, Inc. -- * -- * Permission is hereby granted, free of charge, to any person obtaining a -- * copy of this software and associated documentation files (the "Software"), -- * to deal in the Software without restriction, including without limitation -- * the rights to use, copy, modify, merge, publish, distribute, sublicense, -- * and/or sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following conditions: -- * -- * The above copyright notice and this permission notice shall be included in -- * all copies or substantial portions of the Software. -- * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- * OTHER DEALINGS IN THE SOFTWARE. -- * -- * Authors: AMD -- * -- */ -- --#ifndef __DAL_CONNECTOR_H__ --#define __DAL_CONNECTOR_H__ -- --#include "include/connector_interface.h" -- --extern const uint32_t number_of_default_signals; --extern const uint32_t number_of_signals; -- --/* Indexed by enum connector_id */ --extern const struct connector_signals default_signals[]; --/* Indexed by enum connector_id */ --extern const struct connector_signals supported_signals[]; -- --#endif -diff --git a/drivers/gpu/drm/amd/dal/dc/connector/connector_base.c b/drivers/gpu/drm/amd/dal/dc/connector/connector_base.c -deleted file mode 100644 -index 34005fd..0000000 ---- a/drivers/gpu/drm/amd/dal/dc/connector/connector_base.c -+++ /dev/null -@@ -1,421 +0,0 @@ --/* -- * Copyright 2012-15 Advanced Micro Devices, Inc. -- * -- * Permission is hereby granted, free of charge, to any person obtaining a -- * copy of this software and associated documentation files (the "Software"), -- * to deal in the Software without restriction, including without limitation -- * the rights to use, copy, modify, merge, publish, distribute, sublicense, -- * and/or sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following conditions: -- * -- * The above copyright notice and this permission notice shall be included in -- * all copies or substantial portions of the Software. -- * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- * OTHER DEALINGS IN THE SOFTWARE. -- * -- * Authors: AMD -- * -- */ -- --#include "dal_services.h" -- --#include "connector.h" --#include "include/irq_interface.h" --#include "include/ddc_interface.h" --#include "include/connector_interface.h" -- --struct connector { -- struct graphics_object_id id; -- uint32_t input_signals; -- uint32_t output_signals; -- struct adapter_service *as; -- struct connector_feature_support features; -- struct connector_signals default_signals; -- struct dc_context *ctx; --}; -- --static bool connector_construct( -- struct connector *connector, -- struct dc_context *ctx, -- struct adapter_service *as, -- struct graphics_object_id go_id) --{ -- bool hw_ddc_polling = false; -- struct ddc *ddc; -- struct irq *hpd; -- enum connector_id connector_id; -- uint32_t signals_vector = 0; -- uint32_t signals_num = 0; -- uint32_t i; -- -- if (!as) { -- BREAK_TO_DEBUGGER(); -- return false; -- } -- -- connector->as = as; -- connector->id = go_id; -- connector->features.ddc_line = CHANNEL_ID_UNKNOWN; -- connector->features.hpd_line = HPD_SOURCEID_UNKNOWN; -- connector->ctx = ctx; -- -- ddc = dal_adapter_service_obtain_ddc(as, connector->id); -- hpd = dal_adapter_service_obtain_hpd_irq(as, connector->id); -- -- connector_id = dal_graphics_object_id_get_connector_id(go_id); -- -- /* Initialize DDC line */ -- if (ddc) { -- switch (dal_ddc_get_line(ddc)) { -- case GPIO_DDC_LINE_DDC1: -- connector->features.ddc_line = CHANNEL_ID_DDC1; -- break; -- case GPIO_DDC_LINE_DDC2: -- connector->features.ddc_line = CHANNEL_ID_DDC2; -- break; -- case GPIO_DDC_LINE_DDC3: -- connector->features.ddc_line = CHANNEL_ID_DDC3; -- break; -- case GPIO_DDC_LINE_DDC4: -- connector->features.ddc_line = CHANNEL_ID_DDC4; -- break; -- case GPIO_DDC_LINE_DDC5: -- connector->features.ddc_line = CHANNEL_ID_DDC5; -- break; -- case GPIO_DDC_LINE_DDC6: -- connector->features.ddc_line = CHANNEL_ID_DDC6; -- break; -- case GPIO_DDC_LINE_DDC_VGA: -- connector->features.ddc_line = CHANNEL_ID_DDC_VGA; -- break; -- case GPIO_DDC_LINE_I2C_PAD: -- connector->features.ddc_line = CHANNEL_ID_I2C_PAD; -- break; -- default: -- BREAK_TO_DEBUGGER(); -- break; -- } -- -- /* Initialize HW DDC polling support -- * On DCE6.0 only DDC lines support HW polling (I2cPad does not) -- */ -- -- if (dal_adapter_service_is_feature_supported( -- FEATURE_ENABLE_HW_EDID_POLLING)) { -- switch (dal_ddc_get_line(ddc)) { -- case GPIO_DDC_LINE_DDC1: -- case GPIO_DDC_LINE_DDC2: -- case GPIO_DDC_LINE_DDC3: -- case GPIO_DDC_LINE_DDC4: -- case GPIO_DDC_LINE_DDC5: -- case GPIO_DDC_LINE_DDC6: -- case GPIO_DDC_LINE_DDC_VGA: -- hw_ddc_polling = true; -- break; -- default: -- break; -- } -- } -- -- dal_adapter_service_release_ddc(as, ddc); -- } -- -- /* Initialize HPD line */ -- if (hpd) { -- switch (dal_irq_get_source(hpd)) { -- case DC_IRQ_SOURCE_HPD1: -- connector->features.hpd_line = HPD_SOURCEID1; -- break; -- case DC_IRQ_SOURCE_HPD2: -- connector->features.hpd_line = HPD_SOURCEID2; -- break; -- case DC_IRQ_SOURCE_HPD3: -- connector->features.hpd_line = HPD_SOURCEID3; -- break; -- case DC_IRQ_SOURCE_HPD4: -- connector->features.hpd_line = HPD_SOURCEID4; -- break; -- case DC_IRQ_SOURCE_HPD5: -- connector->features.hpd_line = HPD_SOURCEID5; -- break; -- case DC_IRQ_SOURCE_HPD6: -- connector->features.hpd_line = HPD_SOURCEID6; -- break; -- default: -- BREAK_TO_DEBUGGER(); -- break; -- } -- -- dal_adapter_service_release_irq(as, hpd); -- } -- -- if ((uint32_t)connector_id >= number_of_default_signals && -- (uint32_t)connector_id >= number_of_signals) -- return false; -- -- /* Initialize default signals */ -- connector->default_signals = default_signals[connector_id]; -- -- /* Fill supported signals */ -- signals_num = supported_signals[connector_id].number_of_signals; -- for (i = 0; i < signals_num; i++) -- signals_vector |= supported_signals[connector_id].signal[i]; -- -- /* Connector supports same set for input and output signals */ -- connector->input_signals = signals_vector; -- connector->output_signals = signals_vector; -- -- switch (connector_id) { -- case CONNECTOR_ID_VGA: -- if (hw_ddc_polling -- && connector->features.ddc_line != CHANNEL_ID_UNKNOWN) -- connector->features.HW_DDC_POLLING = true; -- break; -- case CONNECTOR_ID_SINGLE_LINK_DVII: -- case CONNECTOR_ID_DUAL_LINK_DVII: -- if (connector->features.hpd_line != HPD_SOURCEID_UNKNOWN) -- connector->features.HPD_FILTERING = true; -- if (hw_ddc_polling -- && connector->features.ddc_line != CHANNEL_ID_UNKNOWN) -- connector->features.HW_DDC_POLLING = true; -- break; -- case CONNECTOR_ID_SINGLE_LINK_DVID: -- case CONNECTOR_ID_DUAL_LINK_DVID: -- case CONNECTOR_ID_HDMI_TYPE_A: -- case CONNECTOR_ID_LVDS: -- case CONNECTOR_ID_DISPLAY_PORT: -- case CONNECTOR_ID_EDP: -- if (connector->features.hpd_line != HPD_SOURCEID_UNKNOWN) -- connector->features.HPD_FILTERING = true; -- break; -- default: -- connector->features.HPD_FILTERING = false; -- connector->features.HW_DDC_POLLING = false; -- break; -- } -- -- return true; --} -- --struct connector *dal_connector_create( -- struct dc_context *ctx, -- struct adapter_service *as, -- struct graphics_object_id go_id) --{ -- struct connector *connector = NULL; -- -- connector = dc_service_alloc(ctx, sizeof(struct connector)); -- -- if (!connector) { -- BREAK_TO_DEBUGGER(); -- return NULL; -- } -- -- if (connector_construct(connector, ctx, as, go_id)) -- return connector; -- -- BREAK_TO_DEBUGGER(); -- -- dc_service_free(ctx, connector); -- -- return NULL; --} -- --void dal_connector_destroy(struct connector **connector) --{ -- if (!connector || !*connector) { -- BREAK_TO_DEBUGGER(); -- return; -- } -- -- dc_service_free((*connector)->ctx, *connector); -- -- *connector = NULL; --} -- --uint32_t dal_connector_enumerate_output_signals( -- const struct connector *connector) --{ -- return connector->output_signals; --} -- --uint32_t dal_connector_enumerate_input_signals( -- const struct connector *connector) --{ -- return connector->input_signals; --} -- --struct connector_signals dal_connector_get_default_signals( -- const struct connector *connector) --{ -- return connector->default_signals; --} -- --const struct graphics_object_id dal_connector_get_graphics_object_id( -- const struct connector *connector) --{ -- return connector->id; --} -- --/* -- * Function: program_hpd_filter -- * -- * @brief -- * Programs HPD filter on associated HPD line -- * -- * @param [in] delay_on_connect_in_ms: Connect filter timeout -- * @param [in] delay_on_disconnect_in_ms: Disconnect filter timeout -- * -- * @return -- * true on success, false otherwise -- */ --bool dal_connector_program_hpd_filter( -- const struct connector *connector, -- const uint32_t delay_on_connect_in_ms, -- const uint32_t delay_on_disconnect_in_ms) --{ -- bool result = false; -- -- struct irq *hpd; -- -- /* Verify feature is supported */ -- -- if (!connector->features.HPD_FILTERING) -- return result; -- -- /* Obtain HPD handle */ -- -- hpd = dal_adapter_service_obtain_hpd_irq( -- connector->as, connector->id); -- -- if (!hpd) -- return result; -- -- /* Setup HPD filtering */ -- -- if (GPIO_RESULT_OK == dal_irq_open(hpd)) { -- struct gpio_hpd_config config; -- -- config.delay_on_connect = delay_on_connect_in_ms; -- config.delay_on_disconnect = delay_on_disconnect_in_ms; -- -- dal_irq_setup_hpd_filter(hpd, &config); -- -- dal_irq_close(hpd); -- -- result = true; -- } else { -- ASSERT_CRITICAL(false); -- } -- -- /* Release HPD handle */ -- -- dal_adapter_service_release_irq(connector->as, hpd); -- -- return result; --} -- --/* -- * Function: setup_ddc_polling -- * -- * @brief -- * Enables/Disables HW polling on associated DDC line -- * -- * @param [in] ddc_config: Specifies polling mode -- * -- * @return -- * true on success, false otherwise -- */ --static bool setup_ddc_polling( -- const struct connector *connector, -- enum gpio_ddc_config_type ddc_config) --{ -- bool result = false; -- -- struct ddc *ddc; -- -- /* Verify feature is supported */ -- -- if (!connector->features.HW_DDC_POLLING) -- return result; -- -- /* Obtain DDC handle */ -- -- ddc = dal_adapter_service_obtain_ddc( -- connector->as, connector->id); -- -- if (!ddc) { -- BREAK_TO_DEBUGGER(); -- return result; -- } -- -- /* Setup DDC polling */ -- -- if (GPIO_RESULT_OK == dal_ddc_open(ddc, GPIO_MODE_HARDWARE, -- GPIO_DDC_CONFIG_TYPE_MODE_I2C)) { -- dal_ddc_set_config(ddc, ddc_config); -- -- dal_ddc_close(ddc); -- -- result = true; -- } else { -- BREAK_TO_DEBUGGER(); -- } -- -- /* Release DDC handle */ -- -- dal_adapter_service_release_ddc(connector->as, ddc); -- -- return result; --} -- --/* -- * Function: enable_ddc_polling -- * -- * @brief -- * Enables HW polling on associated DDC line -- * -- * @param [in] is_poll_for_connect: Specifies polling mode -- * -- * @return -- * true on success, false otherwise -- */ --bool dal_connector_enable_ddc_polling( -- const struct connector *connector, -- const bool is_poll_for_connect) --{ -- enum gpio_ddc_config_type ddc_config = is_poll_for_connect ? -- GPIO_DDC_CONFIG_TYPE_POLL_FOR_CONNECT : -- GPIO_DDC_CONFIG_TYPE_POLL_FOR_DISCONNECT; -- -- return setup_ddc_polling(connector, ddc_config); --} -- --/* -- * Function: disable_ddc_polling -- * -- * @brief -- * Disables HW polling on associated DDC line -- * -- * @return -- * true on success, false otherwise -- */ --bool dal_connector_disable_ddc_polling(const struct connector *connector) --{ -- return setup_ddc_polling(connector, -- GPIO_DDC_CONFIG_TYPE_DISABLE_POLLING); --} -- --void dal_connector_get_features( -- const struct connector *con, -- struct connector_feature_support *cfs) --{ -- dc_service_memmove(cfs, &con->features, -- sizeof(struct connector_feature_support)); --} -diff --git a/drivers/gpu/drm/amd/dal/dc/connector/connector_signals.c b/drivers/gpu/drm/amd/dal/dc/connector/connector_signals.c -deleted file mode 100644 -index 3a5d75b..0000000 ---- a/drivers/gpu/drm/amd/dal/dc/connector/connector_signals.c -+++ /dev/null -@@ -1,238 +0,0 @@ --/* -- * Copyright 2012-15 Advanced Micro Devices, Inc. -- * -- * Permission is hereby granted, free of charge, to any person obtaining a -- * copy of this software and associated documentation files (the "Software"), -- * to deal in the Software without restriction, including without limitation -- * the rights to use, copy, modify, merge, publish, distribute, sublicense, -- * and/or sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following conditions: -- * -- * The above copyright notice and this permission notice shall be included in -- * all copies or substantial portions of the Software. -- * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- * OTHER DEALINGS IN THE SOFTWARE. -- * -- * Authors: AMD -- * -- */ -- --#include "dal_services.h" -- --#include "connector.h" -- --static const enum signal_type signals_none[] = { -- SIGNAL_TYPE_NONE --}; -- --static const enum signal_type signals_single_link_dvii[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK, -- SIGNAL_TYPE_RGB --}; -- --static const enum signal_type signals_dual_link_dvii[] = { -- SIGNAL_TYPE_DVI_DUAL_LINK, -- SIGNAL_TYPE_DVI_SINGLE_LINK, -- SIGNAL_TYPE_RGB --}; -- --static const enum signal_type signals_single_link_dvid[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK --}; -- --static const enum signal_type signals_dual_link_dvid[] = { -- SIGNAL_TYPE_DVI_DUAL_LINK, -- SIGNAL_TYPE_DVI_SINGLE_LINK, --}; -- --static const enum signal_type signals_vga[] = { -- SIGNAL_TYPE_RGB --}; -- --static const enum signal_type signals_hdmi_type_a[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK, -- SIGNAL_TYPE_HDMI_TYPE_A --}; -- --static const enum signal_type signals_lvds[] = { -- SIGNAL_TYPE_LVDS --}; -- --static const enum signal_type signals_pcie[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK, -- SIGNAL_TYPE_HDMI_TYPE_A, -- SIGNAL_TYPE_DISPLAY_PORT --}; -- --static const enum signal_type signals_hardcode_dvi[] = { -- SIGNAL_TYPE_NONE --}; -- --static const enum signal_type signals_displayport[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK, -- SIGNAL_TYPE_HDMI_TYPE_A, -- SIGNAL_TYPE_DISPLAY_PORT, -- SIGNAL_TYPE_DISPLAY_PORT_MST --}; -- --static const enum signal_type signals_edp[] = { -- SIGNAL_TYPE_EDP --}; -- --static const enum signal_type signals_wireless[] = { -- SIGNAL_TYPE_WIRELESS --}; -- --static const enum signal_type signals_miracast[] = { -- SIGNAL_TYPE_WIRELESS --}; -- --static const enum signal_type default_signals_none[] = { -- SIGNAL_TYPE_NONE --}; -- --static const enum signal_type default_signals_single_link_dvii[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK, -- SIGNAL_TYPE_RGB --}; -- --static const enum signal_type default_signals_dual_link_dvii[] = { -- SIGNAL_TYPE_DVI_DUAL_LINK, -- SIGNAL_TYPE_RGB --}; -- --static const enum signal_type default_signals_single_link_dvid[] = { -- SIGNAL_TYPE_DVI_SINGLE_LINK --}; -- --static const enum signal_type default_signals_dual_link_dvid[] = { -- SIGNAL_TYPE_DVI_DUAL_LINK, --}; -- --static const enum signal_type default_signals_vga[] = { -- SIGNAL_TYPE_RGB --}; -- --static const enum signal_type default_signals_hdmi_type_a[] = { -- SIGNAL_TYPE_HDMI_TYPE_A --}; -- --static const enum signal_type default_signals_lvds[] = { -- SIGNAL_TYPE_LVDS --}; -- --static const enum signal_type default_signals_pcie[] = { -- SIGNAL_TYPE_DISPLAY_PORT --}; -- --static const enum signal_type default_signals_hardcode_dvi[] = { -- SIGNAL_TYPE_NONE --}; -- --static const enum signal_type default_signals_displayport[] = { -- SIGNAL_TYPE_DISPLAY_PORT --}; -- --static const enum signal_type default_signals_edp[] = { -- SIGNAL_TYPE_EDP --}; -- --static const enum signal_type default_signals_wireless[] = { -- SIGNAL_TYPE_WIRELESS --}; -- --static const enum signal_type default_signals_miracast[] = { -- SIGNAL_TYPE_WIRELESS --}; -- --/* -- * Signal arrays -- */ -- --#define SIGNALS_ARRAY_ELEM(a) {a, ARRAY_SIZE(a)} -- --/* Indexed by enum connector_id */ --const struct connector_signals default_signals[] = { -- SIGNALS_ARRAY_ELEM(default_signals_none), -- SIGNALS_ARRAY_ELEM(default_signals_single_link_dvii), -- SIGNALS_ARRAY_ELEM(default_signals_dual_link_dvii), -- SIGNALS_ARRAY_ELEM(default_signals_single_link_dvid), -- SIGNALS_ARRAY_ELEM(default_signals_dual_link_dvid), -- SIGNALS_ARRAY_ELEM(default_signals_vga), -- /* Composite */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- /* S Video */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- /* YPbPr */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- /* DConnector */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- /* 9pinDIN */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- /* SCART */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- SIGNALS_ARRAY_ELEM(default_signals_hdmi_type_a), -- /* Not Used */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- SIGNALS_ARRAY_ELEM(default_signals_lvds), -- /* 7pin DIN*/ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- SIGNALS_ARRAY_ELEM(default_signals_pcie), -- /* CrossFire */ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- SIGNALS_ARRAY_ELEM(default_signals_hardcode_dvi), -- SIGNALS_ARRAY_ELEM(default_signals_displayport), -- SIGNALS_ARRAY_ELEM(default_signals_edp), -- /* MXM*/ -- SIGNALS_ARRAY_ELEM(default_signals_none), -- SIGNALS_ARRAY_ELEM(default_signals_wireless), -- SIGNALS_ARRAY_ELEM(default_signals_miracast) --}; -- --const uint32_t number_of_default_signals = ARRAY_SIZE(default_signals); -- --/* Indexed by enum connector_id */ --const struct connector_signals supported_signals[] = { -- SIGNALS_ARRAY_ELEM(signals_none), -- SIGNALS_ARRAY_ELEM(signals_single_link_dvii), -- SIGNALS_ARRAY_ELEM(signals_dual_link_dvii), -- SIGNALS_ARRAY_ELEM(signals_single_link_dvid), -- SIGNALS_ARRAY_ELEM(signals_dual_link_dvid), -- SIGNALS_ARRAY_ELEM(signals_vga), -- /* Composite */ -- SIGNALS_ARRAY_ELEM(signals_none), -- /* S Video */ -- SIGNALS_ARRAY_ELEM(signals_none), -- /* YPbPr */ -- SIGNALS_ARRAY_ELEM(signals_none), -- /* DConnector */ -- SIGNALS_ARRAY_ELEM(signals_none), -- /* 9pinDIN */ -- SIGNALS_ARRAY_ELEM(signals_none), -- /* SCART */ -- SIGNALS_ARRAY_ELEM(signals_none), -- SIGNALS_ARRAY_ELEM(signals_hdmi_type_a), -- /* Note Used */ -- SIGNALS_ARRAY_ELEM(signals_none), -- SIGNALS_ARRAY_ELEM(signals_lvds), -- /* 7pin DIN*/ -- SIGNALS_ARRAY_ELEM(signals_none), -- SIGNALS_ARRAY_ELEM(signals_pcie), -- /* CrossFire */ -- SIGNALS_ARRAY_ELEM(signals_none), -- SIGNALS_ARRAY_ELEM(signals_hardcode_dvi), -- SIGNALS_ARRAY_ELEM(signals_displayport), -- SIGNALS_ARRAY_ELEM(signals_edp), -- /* MXM */ -- SIGNALS_ARRAY_ELEM(signals_none), -- SIGNALS_ARRAY_ELEM(signals_wireless), -- SIGNALS_ARRAY_ELEM(signals_miracast) --}; -- --const uint32_t number_of_signals = ARRAY_SIZE(supported_signals); -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 2211f38..3347174 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c -@@ -29,7 +29,6 @@ - #include "core_dc.h" - #include "adapter_service_interface.h" - #include "grph_object_id.h" --#include "connector_interface.h" - #include "gpio_service_interface.h" - #include "ddc_service_interface.h" - #include "core_status.h" -@@ -45,6 +44,10 @@ - LOG_MAJOR_HW_TRACE, LOG_MINOR_HW_TRACE_HOTPLUG, \ - __VA_ARGS__) - -+#define DELAY_ON_CONNECT_IN_MS 500 -+#define DELAY_ON_DISCONNECT_IN_MS 500 -+ -+ - /******************************************************************************* - * Private structures - ******************************************************************************/ -@@ -55,9 +58,6 @@ - ******************************************************************************/ - static void destruct(struct core_link *link) - { -- if (link->connector) -- dal_connector_destroy(&link->connector); -- - if (link->ddc) - dal_ddc_service_destroy(&link->ddc); - -@@ -65,6 +65,73 @@ static void destruct(struct core_link *link) - link->ctx->dc->hwss.encoder_destroy(&link->link_enc); - } - -+/* -+ * Function: program_hpd_filter -+ * -+ * @brief -+ * Programs HPD filter on associated HPD line -+ * -+ * @param [in] delay_on_connect_in_ms: Connect filter timeout -+ * @param [in] delay_on_disconnect_in_ms: Disconnect filter timeout -+ * -+ * @return -+ * true on success, false otherwise -+ */ -+static bool program_hpd_filter( -+ const struct core_link *link) -+{ -+ bool result = false; -+ -+ struct irq *hpd; -+ -+ /* Verify feature is supported */ -+ -+ switch (link->public.connector_signal) { -+ case SIGNAL_TYPE_DVI_SINGLE_LINK: -+ case SIGNAL_TYPE_DVI_DUAL_LINK: -+ case SIGNAL_TYPE_HDMI_TYPE_A: -+ case SIGNAL_TYPE_LVDS: -+ case SIGNAL_TYPE_DISPLAY_PORT: -+ case SIGNAL_TYPE_DISPLAY_PORT_MST: -+ case SIGNAL_TYPE_EDP: -+ /* program hpd filter */ -+ break; -+ default: -+ /* don't program hpd filter */ -+ return false; -+ } -+ -+ /* Obtain HPD handle */ -+ hpd = dal_adapter_service_obtain_hpd_irq( -+ link->adapter_srv, link->link_id); -+ -+ if (!hpd) -+ return result; -+ -+ /* Setup HPD filtering */ -+ -+ if (dal_irq_open(hpd) == GPIO_RESULT_OK) { -+ struct gpio_hpd_config config; -+ -+ config.delay_on_connect = DELAY_ON_CONNECT_IN_MS; -+ config.delay_on_disconnect = DELAY_ON_DISCONNECT_IN_MS; -+ -+ dal_irq_setup_hpd_filter(hpd, &config); -+ -+ dal_irq_close(hpd); -+ -+ result = true; -+ } else { -+ ASSERT_CRITICAL(false); -+ } -+ -+ /* Release HPD handle */ -+ -+ dal_adapter_service_release_irq(link->adapter_srv, hpd); -+ -+ return result; -+} -+ - static bool detect_sink(struct core_link *link) - { - uint32_t is_hpd_high = 0; -@@ -651,6 +718,91 @@ void dc_link_detect(const struct dc_link *dc_link) - return; - } - -+static enum hpd_source_id get_hpd_line( -+ struct core_link *link, -+ struct adapter_service *as) -+{ -+ struct irq *hpd; -+ enum hpd_source_id hpd_id = HPD_SOURCEID_UNKNOWN; -+ -+ hpd = dal_adapter_service_obtain_hpd_irq(as, link->link_id); -+ -+ if (hpd) { -+ switch (dal_irq_get_source(hpd)) { -+ case DC_IRQ_SOURCE_HPD1: -+ hpd_id = HPD_SOURCEID1; -+ break; -+ case DC_IRQ_SOURCE_HPD2: -+ hpd_id = HPD_SOURCEID2; -+ break; -+ case DC_IRQ_SOURCE_HPD3: -+ hpd_id = HPD_SOURCEID3; -+ break; -+ case DC_IRQ_SOURCE_HPD4: -+ hpd_id = HPD_SOURCEID4; -+ break; -+ case DC_IRQ_SOURCE_HPD5: -+ hpd_id = HPD_SOURCEID5; -+ break; -+ case DC_IRQ_SOURCE_HPD6: -+ hpd_id = HPD_SOURCEID6; -+ break; -+ default: -+ BREAK_TO_DEBUGGER(); -+ break; -+ } -+ -+ dal_adapter_service_release_irq(as, hpd); -+ } -+ -+ return hpd_id; -+} -+ -+static enum channel_id get_ddc_line(struct core_link *link, struct adapter_service *as) -+{ -+ struct ddc *ddc; -+ enum channel_id channel = CHANNEL_ID_UNKNOWN; -+ -+ ddc = dal_adapter_service_obtain_ddc(as, link->link_id); -+ -+ if (ddc) { -+ switch (dal_ddc_get_line(ddc)) { -+ case GPIO_DDC_LINE_DDC1: -+ channel = CHANNEL_ID_DDC1; -+ break; -+ case GPIO_DDC_LINE_DDC2: -+ channel = CHANNEL_ID_DDC2; -+ break; -+ case GPIO_DDC_LINE_DDC3: -+ channel = CHANNEL_ID_DDC3; -+ break; -+ case GPIO_DDC_LINE_DDC4: -+ channel = CHANNEL_ID_DDC4; -+ break; -+ case GPIO_DDC_LINE_DDC5: -+ channel = CHANNEL_ID_DDC5; -+ break; -+ case GPIO_DDC_LINE_DDC6: -+ channel = CHANNEL_ID_DDC6; -+ break; -+ case GPIO_DDC_LINE_DDC_VGA: -+ channel = CHANNEL_ID_DDC_VGA; -+ break; -+ case GPIO_DDC_LINE_I2C_PAD: -+ channel = CHANNEL_ID_I2C_PAD; -+ break; -+ default: -+ BREAK_TO_DEBUGGER(); -+ break; -+ } -+ -+ dal_adapter_service_release_ddc(as, ddc); -+ } -+ -+ return channel; -+} -+ -+ - static bool construct( - struct core_link *link, - const struct link_init_data *init_params) -@@ -661,7 +813,6 @@ static bool construct( - struct ddc_service_init_data ddc_service_init_data = { 0 }; - struct dc_context *dc_ctx = init_params->ctx; - struct encoder_init_data enc_init_data = { 0 }; -- struct connector_feature_support cfs = { 0 }; - struct integrated_info info = {{{ 0 }}}; - - link->dc = init_params->dc; -@@ -732,13 +883,6 @@ static bool construct( - init_params->connector_index, - link->public.connector_signal); - -- link->connector = dal_connector_create(dc_ctx, as, link->link_id); -- if (NULL == link->connector) { -- DC_ERROR("Failed to create connector object!\n"); -- goto create_fail; -- } -- -- - hpd_gpio = dal_adapter_service_obtain_hpd_irq(as, link->link_id); - - if (hpd_gpio != NULL) { -@@ -756,15 +900,13 @@ static bool construct( - goto create_fail; - } - -- dal_connector_get_features(link->connector, &cfs); -- - enc_init_data.adapter_service = as; - enc_init_data.ctx = dc_ctx; - enc_init_data.encoder = dal_adapter_service_get_src_obj( - as, link->link_id, 0); - enc_init_data.connector = link->link_id; -- enc_init_data.channel = cfs.ddc_line; -- enc_init_data.hpd_source = cfs.hpd_line; -+ enc_init_data.channel = get_ddc_line(link, as); -+ enc_init_data.hpd_source = get_hpd_line(link, as); - link->link_enc = dc_ctx->dc->hwss.encoder_create(&enc_init_data); - - if( link->link_enc == NULL) { -@@ -819,13 +961,7 @@ static bool construct( - * If GPIO isn't programmed correctly HPD might not rise or drain - * fast enough, leading to bounces. - */ --#define DELAY_ON_CONNECT_IN_MS 500 --#define DELAY_ON_DISCONNECT_IN_MS 500 -- -- dal_connector_program_hpd_filter( -- link->connector, -- DELAY_ON_CONNECT_IN_MS, -- DELAY_ON_DISCONNECT_IN_MS); -+ program_hpd_filter(link); - - return true; - -@@ -1126,10 +1262,7 @@ bool dc_link_set_backlight_level(const struct dc_link *public, uint32_t level) - - void core_link_resume(struct core_link *link) - { -- dal_connector_program_hpd_filter( -- link->connector, -- DELAY_ON_CONNECT_IN_MS, -- DELAY_ON_DISCONNECT_IN_MS); -+ program_hpd_filter(link); - } - - -@@ -1279,4 +1412,3 @@ void core_link_disable_stream( - disable_link(stream); - - } -- -diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c -index c0390e1..787091f 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c -@@ -5,7 +5,6 @@ - #include "inc/core_types.h" - #include "link_hwss.h" - #include "ddc_service_interface.h" --#include "connector_interface.h" - #include "core_status.h" - #include "dpcd_defs.h" - -diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c -index 5ed0380..715aa9f 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c -@@ -6,7 +6,6 @@ - #include "include/ddc_service_types.h" - #include "include/i2caux_interface.h" - #include "link_hwss.h" --#include "include/connector_interface.h" - #include "hw_sequencer.h" - #include "include/ddc_service_interface.h" - #include "dc_helpers.h" -diff --git a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h -index dc871ad..26f5002 100644 ---- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h -+++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h -@@ -205,7 +205,6 @@ struct core_link { - uint8_t connector_index; /* this will be mapped to the HPD pins */ - - struct adapter_service *adapter_srv; -- struct connector *connector; - struct link_encoder *link_enc; - struct ddc_service *ddc; - struct graphics_object_id link_id; -diff --git a/drivers/gpu/drm/amd/dal/include/connector_interface.h b/drivers/gpu/drm/amd/dal/include/connector_interface.h -deleted file mode 100644 -index e09af7e..0000000 ---- a/drivers/gpu/drm/amd/dal/include/connector_interface.h -+++ /dev/null -@@ -1,82 +0,0 @@ --/* -- * Copyright 2012-15 Advanced Micro Devices, Inc. -- * -- * Permission is hereby granted, free of charge, to any person obtaining a -- * copy of this software and associated documentation files (the "Software"), -- * to deal in the Software without restriction, including without limitation -- * the rights to use, copy, modify, merge, publish, distribute, sublicense, -- * and/or sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following conditions: -- * -- * The above copyright notice and this permission notice shall be included in -- * all copies or substantial portions of the Software. -- * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- * OTHER DEALINGS IN THE SOFTWARE. -- * -- * Authors: AMD -- * -- */ -- --#ifndef __DAL_CONNECTOR_INTERFACE_H__ --#define __DAL_CONNECTOR_INTERFACE_H__ -- --#include "adapter_service_interface.h" --#include "signal_types.h" -- --/* forward declaration */ --struct connector; -- --struct connector_signals { -- const enum signal_type *signal; -- uint32_t number_of_signals; --}; -- --struct connector_feature_support { -- bool HPD_FILTERING:1; -- bool HW_DDC_POLLING:1; -- enum hpd_source_id hpd_line; -- enum channel_id ddc_line; --}; -- --void dal_connector_get_features( -- const struct connector *con, -- struct connector_feature_support *cfs); -- --struct connector *dal_connector_create( -- struct dc_context *ctx, -- struct adapter_service *as, -- struct graphics_object_id go_id); -- --void dal_connector_destroy(struct connector **connector); -- --void dal_connector_destroy(struct connector **connector); -- --const struct graphics_object_id dal_connector_get_graphics_object_id( -- const struct connector *connector); -- --uint32_t dal_connector_enumerate_output_signals( -- const struct connector *connector); --uint32_t dal_connector_enumerate_input_signals( -- const struct connector *connector); -- --struct connector_signals dal_connector_get_default_signals( -- const struct connector *connector); -- --bool dal_connector_program_hpd_filter( -- const struct connector *connector, -- const uint32_t delay_on_connect_in_ms, -- const uint32_t delay_on_disconnect_in_ms); -- --bool dal_connector_enable_ddc_polling( -- const struct connector *connector, -- const bool is_poll_for_connect); -- --bool dal_connector_disable_ddc_polling(const struct connector *connector); -- --#endif --- -2.7.4 - |