aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3574-drm-amd-display-refactor-Device-ID-for-external-chip.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3574-drm-amd-display-refactor-Device-ID-for-external-chip.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3574-drm-amd-display-refactor-Device-ID-for-external-chip.patch105
1 files changed, 105 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3574-drm-amd-display-refactor-Device-ID-for-external-chip.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3574-drm-amd-display-refactor-Device-ID-for-external-chip.patch
new file mode 100644
index 00000000..571064d9
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3574-drm-amd-display-refactor-Device-ID-for-external-chip.patch
@@ -0,0 +1,105 @@
+From 8b1d1ae016a9d4ecde8b859fab967a4233e9d694 Mon Sep 17 00:00:00 2001
+From: Qingqing Zhuo <qingqing.zhuo@amd.com>
+Date: Wed, 31 Jul 2019 18:11:16 -0400
+Subject: [PATCH 3574/4256] drm/amd/display: refactor Device ID for external
+ chips
+
+IEEE OUI will now be used while referring to certain vendors.
+instead of normal index
+
+Signed-off-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
+Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ .../gpu/drm/amd/display/dc/core/dc_link_ddc.c | 2 +-
+ .../gpu/drm/amd/display/dc/core/dc_link_dp.c | 21 ++++++++++++++-----
+ .../amd/display/include/ddc_service_types.h | 10 +++++----
+ 3 files changed, 23 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
+index 94064d8ce303..7fd2d1358f1b 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
+@@ -292,7 +292,7 @@ static uint32_t defer_delay_converter_wa(
+ {
+ struct dc_link *link = ddc->link;
+
+- if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_4 &&
++ if (link->dpcd_caps.branch_dev_id == DP_BRANCH_DEVICE_ID_0080E1 &&
+ !memcmp(link->dpcd_caps.branch_dev_name,
+ DP_DVI_CONVERTER_ID_4,
+ sizeof(link->dpcd_caps.branch_dev_name)))
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+index 2aa44b28b673..40067403b043 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+@@ -2684,13 +2684,13 @@ static void dp_wa_power_up_0010FA(struct dc_link *link, uint8_t *dpcd_data,
+
+ if (link->dpcd_caps.dongle_type == DISPLAY_DONGLE_DP_VGA_CONVERTER) {
+ switch (link->dpcd_caps.branch_dev_id) {
+- /* Some active dongles (DP-VGA, DP-DLDVI converters) power down
++ /* 0010FA active dongles (DP-VGA, DP-DLDVI converters) power down
+ * all internal circuits including AUX communication preventing
+ * reading DPCD table and EDID (spec violation).
+ * Encoder will skip DP RX power down on disable_output to
+ * keep receiver powered all the time.*/
+- case DP_BRANCH_DEVICE_ID_1:
+- case DP_BRANCH_DEVICE_ID_4:
++ case DP_BRANCH_DEVICE_ID_0010FA:
++ case DP_BRANCH_DEVICE_ID_0080E1:
+ link->wa_flags.dp_keep_receiver_powered = true;
+ break;
+
+@@ -3394,7 +3394,13 @@ enum dp_panel_mode dp_get_panel_mode(struct dc_link *link)
+ if (link->connector_signal != SIGNAL_TYPE_DISPLAY_PORT) {
+
+ switch (link->dpcd_caps.branch_dev_id) {
+- case DP_BRANCH_DEVICE_ID_2:
++ case DP_BRANCH_DEVICE_ID_0022B9:
++ /* alternate scrambler reset is required for Travis
++ * for the case when external chip does not
++ * provide sink device id, alternate scrambler
++ * scheme will be overriden later by querying
++ * Encoder features
++ */
+ if (strncmp(
+ link->dpcd_caps.branch_dev_name,
+ DP_VGA_LVDS_CONVERTER_ID_2,
+@@ -3404,7 +3410,12 @@ enum dp_panel_mode dp_get_panel_mode(struct dc_link *link)
+ return DP_PANEL_MODE_SPECIAL;
+ }
+ break;
+- case DP_BRANCH_DEVICE_ID_3:
++ case DP_BRANCH_DEVICE_ID_00001A:
++ /* alternate scrambler reset is required for Travis
++ * for the case when external chip does not provide
++ * sink device id, alternate scrambler scheme will
++ * be overriden later by querying Encoder feature
++ */
+ if (strncmp(link->dpcd_caps.branch_dev_name,
+ DP_VGA_LVDS_CONVERTER_ID_3,
+ sizeof(
+diff --git a/drivers/gpu/drm/amd/display/include/ddc_service_types.h b/drivers/gpu/drm/amd/display/include/ddc_service_types.h
+index d968956a10cd..18961707db23 100644
+--- a/drivers/gpu/drm/amd/display/include/ddc_service_types.h
++++ b/drivers/gpu/drm/amd/display/include/ddc_service_types.h
+@@ -25,10 +25,12 @@
+ #ifndef __DAL_DDC_SERVICE_TYPES_H__
+ #define __DAL_DDC_SERVICE_TYPES_H__
+
+-#define DP_BRANCH_DEVICE_ID_1 0x0010FA
+-#define DP_BRANCH_DEVICE_ID_2 0x0022B9
+-#define DP_BRANCH_DEVICE_ID_3 0x00001A
+-#define DP_BRANCH_DEVICE_ID_4 0x0080e1
++/* 0010FA dongles (ST Micro) external converter chip id */
++#define DP_BRANCH_DEVICE_ID_0010FA 0x0010FA
++/* 0022B9 external converter chip id */
++#define DP_BRANCH_DEVICE_ID_0022B9 0x0022B9
++#define DP_BRANCH_DEVICE_ID_00001A 0x00001A
++#define DP_BRANCH_DEVICE_ID_0080E1 0x0080e1
+
+ enum ddc_result {
+ DDC_RESULT_UNKNOWN = 0,
+--
+2.17.1
+