aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0660-drm-amd-dal-Remove-connector.patch
diff options
context:
space:
mode:
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.patch1170
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
-