aboutsummaryrefslogtreecommitdiffstats
path: root/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch')
-rw-r--r--testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch b/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
new file mode 100644
index 0000000000..50aa112db2
--- /dev/null
+++ b/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
@@ -0,0 +1,31 @@
+From c9cf1e80259276c3da76bc03ab0aaa9dfac481ae Mon Sep 17 00:00:00 2001
+From: Neil Armstrong <narmstrong@baylibre.com>
+Date: Sun, 18 Nov 2018 14:06:11 +0100
+Subject: [PATCH] drm/meson: Output in YUV444 if sink supports it
+
+With the YUV420 handling, we can no dynamically setup the HDMI output
+pixel format depending on the mode and connector info.
+So now, we can output in YUV444, which is the native video pipeline
+format, directly the the HDMI Sink it it's supported, without
+involving the HDMI Controller CSC.
+
+---
+ drivers/gpu/drm/meson/meson_dw_hdmi.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
+index 0b9ecbf..6df124c 100644
+--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
++++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
+@@ -670,7 +670,10 @@ static int meson_venc_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
+ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_UYYVYY8_0_5X24;
+ } else {
+ dw_hdmi->input_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
+- dw_hdmi->output_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
++ if (info->color_formats & DRM_COLOR_FORMAT_YCRCB444)
++ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
++ else
++ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+ }
+
+ return 0;