drm/meson: Fix an Alpha Primary Plane bug on Meson GXL/GXM SoCs
authorNeil Armstrong <narmstrong@baylibre.com>
Wed, 28 Nov 2018 10:07:34 +0000 (11:07 +0100)
committerNeil Armstrong <narmstrong@baylibre.com>
Mon, 3 Dec 2018 10:12:09 +0000 (11:12 +0100)
commit3a936bc2869667d7768f2266d14c4c49a849ffbe
treebc0306a5f2d02ed1a1db41587f7b57a59dc45f8a
parent62d1a752874962f072de8a779e960fcd2ab4847b
drm/meson: Fix an Alpha Primary Plane bug on Meson GXL/GXM SoCs

On the Amlogic GXL & GXM SoCs, a bug occurs on the primary plane when
alpha is used where the alpha is not aligned with the pixel content.

The workaround Amlogic implemented is to reset the OSD1 plane hardware
block each time the plane is (re)enabled, solving the issue.

In the reset, we still need to save the content of 2 registers which
depends on the status of the plane, in addition to reload the scaler
conversion matrix at the same time.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Maxime Jourdan <mjourdan@baylibre.com>
Reviewed-by: Maxime Jourdan <mjourdan@baylibre.com>
[narmstrong: fixed typo in commit log]
Link: https://patchwork.freedesktop.org/patch/msgid/20181128100734.6536-1-narmstrong@baylibre.com
drivers/gpu/drm/meson/meson_plane.c
drivers/gpu/drm/meson/meson_viu.c
drivers/gpu/drm/meson/meson_viu.h