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. Changes since rfc: * Fixed small logic error in drm_bridge_format_set() * rebased on v5.2-rc1 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel