mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-03-01 03:21:21 +00:00
50 lines
1.9 KiB
Diff
50 lines
1.9 KiB
Diff
From 227da4272ca9ccecfbff90cd3e8678f0aee6e3ea Mon Sep 17 00:00:00 2001
|
|
From: Dongjin Kim <tobetter@gmail.com>
|
|
Date: Wed, 29 Jul 2020 04:05:03 +0900
|
|
Subject: [PATCH 05/88] HACK: drm/meson: add YUV422 output support
|
|
|
|
Support YUV422 output from the Amlogic Meson SoC VPU to the HDMI
|
|
controller. This incorrectly fixes the green-line on GX devices.
|
|
|
|
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 aad75a22dc33..97d670081824 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.17.1
|
|
|