OpenCloudOS-Kernel/drivers/gpu/drm/meson
Neil Armstrong f9a2348196 drm/meson: Support Overlay plane for video rendering
The Amlogic Meson GX SoCs support an Overlay plane behind the primary
plane for video rendering.

This Overlay plane support various YUV layouts :
- YUYV
- NV12 / NV21
- YUV444 / 422 / 420 / 411 / 410

The scaler supports a wide range of scaling ratios, but for simplicity,
plane atomic check limits the scaling from x5 to /5 in vertical and
horizontal scaling.

The z-order is fixed and always behind the primary plane and cannot be changed.

The scaling parameter algorithm was taken from the Amlogic vendor kernel
code and rewritten to match the atomic universal plane requirements.

The video rendering using this overlay plane support has been tested using
the new Kodi DRM-KMS Prime rendering path along the in-review V4L2 Mem2Mem
Hardware Video Decoder up to 3840x2160 NV12 frames on various display modes.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: Maxime Jourdan <mjourdan@baylibre.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1541497202-20570-2-git-send-email-narmstrong@baylibre.com
2018-11-13 13:27:51 +01:00
..
Kconfig drm/meson: Use optional canvas provider 2018-11-13 11:51:34 +01:00
Makefile drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_canvas.c drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_canvas.h drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_crtc.c drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_crtc.h
meson_drv.c drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_drv.h drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_dw_hdmi.c drm/meson: Make DMT timings parameters and pixel clock generic 2018-07-16 11:14:59 +02:00
meson_dw_hdmi.h drm/meson: Add support for HDMI encoder and DW-HDMI bridge + PHY 2017-04-04 17:49:31 +02:00
meson_overlay.c drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_overlay.h drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_plane.c drm/meson: Use optional canvas provider 2018-11-13 11:51:34 +01:00
meson_plane.h
meson_registers.h drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_vclk.c drm/meson: Make DMT timings parameters and pixel clock generic 2018-07-16 11:14:59 +02:00
meson_vclk.h drm/meson: Make DMT timings parameters and pixel clock generic 2018-07-16 11:14:59 +02:00
meson_venc.c drm/meson: Make DMT timings parameters and pixel clock generic 2018-07-16 11:14:59 +02:00
meson_venc.h drm/meson: Make DMT timings parameters and pixel clock generic 2018-07-16 11:14:59 +02:00
meson_venc_cvbs.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
meson_venc_cvbs.h
meson_viu.c drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_viu.h
meson_vpp.c drm/meson: Support Overlay plane for video rendering 2018-11-13 13:27:51 +01:00
meson_vpp.h drm/meson: Add support for HDMI venc modes and settings 2017-04-04 17:49:31 +02:00