drm/meson: plane: add support for AFBC mode for OSD1 plane
authorNeil Armstrong <narmstrong@baylibre.com>
Mon, 21 Oct 2019 09:15:06 +0000 (11:15 +0200)
committerNeil Armstrong <narmstrong@baylibre.com>
Tue, 10 Dec 2019 09:09:24 +0000 (10:09 +0100)
commit68e2f64ee4603aeab9c3bb907d19f5cd30d1c6ff
treec8b5a9c11c9506c730c260a4f72ba84bc18faa51
parentd1b5e41e13a7e9bde3e736df9b8693b0325e41bc
drm/meson: plane: add support for AFBC mode for OSD1 plane

This adds all the OSD configuration plumbing to support the AFBC decoders
path to display of the OSD1 plane.

The Amlogic GXM and G12A AFBC decoders are integrated very differently.

The Amlogic GXM has a direct output path to the OSD1 VIU pixel input,
because the GXM AFBC decoder seem to be a custom IP developed by Amlogic.

On the other side, the Amlogic G12A AFBC decoder seems to be an external
IP that emit pixels on an AXI master hooked to a "Mali Unpack" block
feeding the OSD1 VIU pixel input.
This uses a weird "0x1000000" internal HW physical address on both
sides to transfer the pixels.

For Amlogic GXM, the supported pixel formats are the same as the normal
linear OSD1 mode.

On the other side, Amlogic added support for all AFBC v1.2 formats for
the G12A AFBC integration.

For simplicity, we stick to the already supported formats for now.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191021091509.3864-7-narmstrong@baylibre.com
drivers/gpu/drm/meson/meson_crtc.c
drivers/gpu/drm/meson/meson_drv.h
drivers/gpu/drm/meson/meson_plane.c