mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
* Wireguard: bump tag to most recent since it breaks building on 5.4.y * Move rockchip current to 5.4.y * Move sunxi current to 5.4.y * Move meson64 to 5.4.y * Move odroidxu4 to 5.4.y and enable "current" targets * Enable missing target
50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
From e57152836dde170a9da301a2e3d8b70bd6666c0b Mon Sep 17 00:00:00 2001
|
|
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
Date: Mon, 20 May 2019 15:37:53 +0200
|
|
Subject: [PATCH 5/5] drm/meson: Output in YUV444 if sink supports it
|
|
|
|
With the YUV420 handling, we can 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 to the HDMI Sink if it's supported without
|
|
necessarily involving the HDMI Controller CSC.
|
|
|
|
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
|
|
---
|
|
drivers/gpu/drm/meson/meson_dw_hdmi.c | 13 ++++++++++++-
|
|
1 file changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
|
|
index 2ccee05de04a..72416f8a6170 100644
|
|
--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
|
|
+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
|
|
@@ -711,12 +711,23 @@ static int meson_venc_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
|
|
struct drm_display_mode *mode = &crtc_state->mode;
|
|
bool is_hdmi2_sink =
|
|
conn_state->connector->display_info.hdmi.scdc.supported;
|
|
+ bool specify_out_format = false;
|
|
+ u32 out_format;
|
|
|
|
if (drm_mode_is_420_only(info, mode) ||
|
|
(!is_hdmi2_sink && drm_mode_is_420_also(info, mode)))
|
|
dw_hdmi->input_bus_format = MEDIA_BUS_FMT_UYYVYY8_0_5X24;
|
|
- else
|
|
+ else {
|
|
dw_hdmi->input_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
|
|
+ if (info->color_formats & DRM_COLOR_FORMAT_YCRCB444) {
|
|
+ out_format = MEDIA_BUS_FMT_YUV8_1X24;
|
|
+ specify_out_format = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ /* Set a connector bus format if required */
|
|
+ drm_display_info_set_bus_formats(info, &out_format,
|
|
+ (specify_out_format ? 1 : 0));
|
|
|
|
/* Specify the encoder output format to the bridge */
|
|
if (!drm_bridge_format_set(encoder->bridge,
|
|
--
|
|
2.20.1
|
|
|