[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190329104240.29585-1-narmstrong@baylibre.com>
Date: Fri, 29 Mar 2019 11:42:35 +0100
From: Neil Armstrong <narmstrong@...libre.com>
To: a.hajda@...sung.com, Laurent.pinchart@...asonboard.com
Cc: Neil Armstrong <narmstrong@...libre.com>,
dri-devel@...ts.freedesktop.org, jernej.skrabec@...l.net,
heiko@...ech.de, maxime.ripard@...tlin.com, hjc@...k-chips.com,
linux-amlogic@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [PATCH RFC 0/5] drm/meson: Add support for HDMI2.0 YUV420 4k60
The Synopsys DW-HDMI CSC does not support downsampling to YUV420, so
the encoder must downsamle before, feeding the controller with a YUV420
pixel stream.
The encoder must declare the new bus format enc encoding the bridge, in
order to take it in account.
To solve this, a new format_set() bridge op is added, permitting setting
a new input bus format and encoding to the bridge chain.
This solves YUV420 setup, but also solved setting 10bit, 12bit or 16bit
input bus format in order to support HDMI >8bit depths.
The DW-HDMI controller is updated to dynamically select a coherent output
bus format depending on the input bus format and on the internal CSC
supported modes.
The DW-HDMI is also updated to support the connector display_info bus_formats
entry to permit forcing a specific output bus format to force, for example,
an YUV444 output format instead of the default RGB output bus format.
Only the meson DRM dw_hdmi glue allows ycbcr420 modes, so no breakage
is expected here.
The remaining patches adds support for 4:2:0 output and clock setup for
the meson DW-HDMI glue, and how YUV444 output can be forced.
Neil Armstrong (5):
drm/bridge: dw-hdmi: allow ycbcr420 modes for >= 0x200a
drm/bridge: add encoder support to specify bridge input format
drm/bridge: dw-hdmi: Add support for dynamic output format setup
drm/meson: Add YUV420 output support
drm/meson: Output in YUV444 if sink supports it
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 127 ++++++++++++++++++++--
drivers/gpu/drm/drm_bridge.c | 35 ++++++
drivers/gpu/drm/meson/meson_dw_hdmi.c | 111 ++++++++++++++++---
drivers/gpu/drm/meson/meson_vclk.c | 93 ++++++++++++----
drivers/gpu/drm/meson/meson_vclk.h | 7 +-
drivers/gpu/drm/meson/meson_venc.c | 6 +-
drivers/gpu/drm/meson/meson_venc.h | 11 ++
drivers/gpu/drm/meson/meson_venc_cvbs.c | 3 +-
include/drm/bridge/dw_hdmi.h | 1 +
include/drm/drm_bridge.h | 19 ++++
10 files changed, 358 insertions(+), 55 deletions(-)
--
2.21.0
Powered by blists - more mailing lists