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