diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5051-drm-amd-display-update-clk-for-various-HDMI-color-de.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5051-drm-amd-display-update-clk-for-various-HDMI-color-de.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5051-drm-amd-display-update-clk-for-various-HDMI-color-de.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5051-drm-amd-display-update-clk-for-various-HDMI-color-de.patch new file mode 100644 index 00000000..783208a1 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5051-drm-amd-display-update-clk-for-various-HDMI-color-de.patch @@ -0,0 +1,57 @@ +From 0b90d171fe33b4cd160a8250b279e56eab4abae6 Mon Sep 17 00:00:00 2001 +From: Mikita Lipski <mikita.lipski@amd.com> +Date: Fri, 13 Jul 2018 09:07:35 -0400 +Subject: [PATCH 5051/5725] drm/amd/display: update clk for various HDMI color + depths + +[why] +When programming tonga's connector's backend we didn't take +in account that HDMI's colour depth might be more than 8bpc +therefore we need to add a switch statement that would adjust +the pixel clock accordingly. + +[how] +Add a switch statement updating clock by its appropriate +coefficient. + +Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> +Reviewed-by: Charlene Liu <Charlene.Liu@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Cc: stable@vger.kernel.org +--- + drivers/gpu/drm/amd/display/dc/bios/command_table.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/bios/command_table.c b/drivers/gpu/drm/amd/display/dc/bios/command_table.c +index 651e1fd..a558bfa 100644 +--- a/drivers/gpu/drm/amd/display/dc/bios/command_table.c ++++ b/drivers/gpu/drm/amd/display/dc/bios/command_table.c +@@ -808,6 +808,24 @@ static enum bp_result transmitter_control_v1_5( + * (=1: 8bpp, =1.25: 10bpp, =1.5:12bpp, =2: 16bpp) + * LVDS mode: usPixelClock = pixel clock + */ ++ if (cntl->signal == SIGNAL_TYPE_HDMI_TYPE_A) { ++ switch (cntl->color_depth) { ++ case COLOR_DEPTH_101010: ++ params.usSymClock = ++ cpu_to_le16((le16_to_cpu(params.usSymClock) * 30) / 24); ++ break; ++ case COLOR_DEPTH_121212: ++ params.usSymClock = ++ cpu_to_le16((le16_to_cpu(params.usSymClock) * 36) / 24); ++ break; ++ case COLOR_DEPTH_161616: ++ params.usSymClock = ++ cpu_to_le16((le16_to_cpu(params.usSymClock) * 48) / 24); ++ break; ++ default: ++ break; ++ } ++ } + + if (EXEC_BIOS_CMD_TABLE(UNIPHYTransmitterControl, params)) + result = BP_RESULT_OK; +-- +2.7.4 + |