aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1890-drm-amd-display-Support-AVI-InfoFrame-V3-and-V4.patch
diff options
context:
space:
mode:
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.patch62
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
+