51 lines
1.9 KiB
Diff
51 lines
1.9 KiB
Diff
From 5818f513a6364a02a7762e0ccf0b35b89b251bfd Mon Sep 17 00:00:00 2001
|
|
From: Dongjin Kim <tobetter@gmail.com>
|
|
Date: Wed, 29 Jul 2020 04:05:03 +0900
|
|
Subject: [PATCH 39/75] ODROID-N2: drm/meson: Add YUV422 output support
|
|
|
|
This patch is to support YUV422 output from the Amlogic Meson SoC
|
|
VPU to the HDMI controller.
|
|
|
|
Change-Id: I03952f0592c7341585e518c3038877926a694329
|
|
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
|
|
---
|
|
drivers/gpu/drm/meson/meson_dw_hdmi.c | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
|
|
index 2ed87cfdd735..c05c80b918e9 100644
|
|
--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
|
|
+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
|
|
@@ -703,6 +703,7 @@ dw_hdmi_mode_valid(struct dw_hdmi *hdmi, void *data,
|
|
|
|
static const u32 meson_dw_hdmi_out_bus_fmts[] = {
|
|
MEDIA_BUS_FMT_YUV8_1X24,
|
|
+ MEDIA_BUS_FMT_UYVY8_1X16,
|
|
MEDIA_BUS_FMT_UYYVYY8_0_5X24,
|
|
};
|
|
|
|
@@ -802,7 +803,8 @@ static void meson_venc_hdmi_encoder_mode_set(struct drm_bridge *bridge,
|
|
if (dw_hdmi->output_bus_fmt == MEDIA_BUS_FMT_UYYVYY8_0_5X24) {
|
|
ycrcb_map = VPU_HDMI_OUTPUT_CRYCB;
|
|
yuv420_mode = true;
|
|
- }
|
|
+ } else if (dw_hdmi->output_bus_fmt == MEDIA_BUS_FMT_UYVY8_1X16)
|
|
+ ycrcb_map = VPU_HDMI_OUTPUT_CRYCB;
|
|
|
|
/* VENC + VENC-DVI Mode setup */
|
|
meson_venc_hdmi_mode_set(priv, vic, ycrcb_map, yuv420_mode, mode);
|
|
@@ -814,6 +816,10 @@ static void meson_venc_hdmi_encoder_mode_set(struct drm_bridge *bridge,
|
|
/* Setup YUV420 to HDMI-TX, no 10bit diphering */
|
|
writel_relaxed(2 | (2 << 2),
|
|
priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
|
|
+ else if (dw_hdmi->output_bus_fmt == MEDIA_BUS_FMT_UYVY8_1X16)
|
|
+ /* Setup YUV422 to HDMI-TX, no 10bit diphering */
|
|
+ writel_relaxed(1 | (2 << 2),
|
|
+ priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
|
|
else
|
|
/* Setup YUV444 to HDMI-TX, no 10bit diphering */
|
|
writel_relaxed(0, priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
|
|
--
|
|
2.25.1
|
|
|