diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1890-drm-amd-display-Support-AVI-InfoFrame-V3-and-V4.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1890-drm-amd-display-Support-AVI-InfoFrame-V3-and-V4.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1890-drm-amd-display-Support-AVI-InfoFrame-V3-and-V4.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1890-drm-amd-display-Support-AVI-InfoFrame-V3-and-V4.patch new file mode 100644 index 00000000..f04f85b9 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1890-drm-amd-display-Support-AVI-InfoFrame-V3-and-V4.patch @@ -0,0 +1,62 @@ +From 98cdb3682b383c23a121a956d66bb3a525600dfc Mon Sep 17 00:00:00 2001 +From: Chris Park <Chris.Park@amd.com> +Date: Wed, 17 Apr 2019 16:32:25 -0400 +Subject: [PATCH 1890/2940] drm/amd/display: Support AVI InfoFrame V3 and V4 + +[Why] +Part of HDMI 2.1 requires AVI InfoFrame version update +from current V2 to V3 for new VICs, and V4 for +new colorimetry. + +[How] +Implement V3 and V4 AVI InfoFrame. +If (C1, C0)=(1, 1) and (EC2, EC1, EC0)=(1, 1, 1), +the Source shall use 20 AVI InfoFrame Version 4. +If VIC >= 128, the Source shall use AVI InfoFrame Version 3 + +Change-Id: I8f846fd01bdf88717976314b0192abc947aaac54 +Signed-off-by: Chris Park <Chris.Park@amd.com> +Reviewed-by: Nevenko Stupar <Nevenko.Stupar@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet Lakha@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +index eac7186e4f08..9ef417eb697d 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +@@ -2354,7 +2354,18 @@ static void set_avi_info_frame( + break; + } + } ++ /* If VIC >= 128, the Source shall use AVI InfoFrame Version 3*/ + hdmi_info.bits.VIC0_VIC7 = vic; ++ if (vic >= 128) ++ hdmi_info.bits.header.version = 3; ++ /* If (C1, C0)=(1, 1) and (EC2, EC1, EC0)=(1, 1, 1), ++ * the Source shall use 20 AVI InfoFrame Version 4 ++ */ ++ if (hdmi_info.bits.C0_C1 == COLORIMETRY_EXTENDED && ++ hdmi_info.bits.EC0_EC2 == COLORIMETRYEX_RESERVED) { ++ hdmi_info.bits.header.version = 4; ++ hdmi_info.bits.header.length = 14; ++ } + + /* pixel repetition + * PR0 - PR3 start from 0 whereas pHwPathMode->mode.timing.flags.pixel +@@ -2376,9 +2387,9 @@ static void set_avi_info_frame( + /* check_sum - Calculate AFMT_AVI_INFO0 ~ AFMT_AVI_INFO3 */ + check_sum = &hdmi_info.packet_raw_data.sb[0]; + +- *check_sum = HDMI_INFOFRAME_TYPE_AVI + HDMI_AVI_INFOFRAME_SIZE + 2; ++ *check_sum = HDMI_INFOFRAME_TYPE_AVI + hdmi_info.bits.header.length + hdmi_info.bits.header.version; + +- for (byte_index = 1; byte_index <= HDMI_AVI_INFOFRAME_SIZE; byte_index++) ++ for (byte_index = 1; byte_index <= hdmi_info.bits.header.length; byte_index++) + *check_sum += hdmi_info.packet_raw_data.sb[byte_index]; + + /* one byte complement */ +-- +2.17.1 + |