From: Neil Armstrong <narmstr...@baylibre.com>

commit 5ffff4415f9eeae834960226770963e2947e17eb upstream.

Add missing XBGR8888 & ABGR8888 formats variants from the primary plane.

Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller")
Signed-off-by: Neil Armstrong <narmstr...@baylibre.com>
Reviewed-by: Kevin Hilman <khil...@baylibre.com>
Link: 
https://patchwork.freedesktop.org/patch/msgid/20190429075238.7884-1-narmstr...@baylibre.com
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 drivers/gpu/drm/meson/meson_plane.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

--- a/drivers/gpu/drm/meson/meson_plane.c
+++ b/drivers/gpu/drm/meson/meson_plane.c
@@ -153,6 +153,13 @@ static void meson_plane_atomic_update(st
                priv->viu.osd1_blk0_cfg[0] |= OSD_BLK_MODE_32 |
                                              OSD_COLOR_MATRIX_32_ARGB;
                break;
+       case DRM_FORMAT_XBGR8888:
+               /* For XRGB, replace the pixel's alpha by 0xFF */
+               writel_bits_relaxed(OSD_REPLACE_EN, OSD_REPLACE_EN,
+                                   priv->io_base + _REG(VIU_OSD1_CTRL_STAT2));
+               priv->viu.osd1_blk0_cfg[0] |= OSD_BLK_MODE_32 |
+                                             OSD_COLOR_MATRIX_32_ABGR;
+               break;
        case DRM_FORMAT_ARGB8888:
                /* For ARGB, use the pixel's alpha */
                writel_bits_relaxed(OSD_REPLACE_EN, 0,
@@ -160,6 +167,13 @@ static void meson_plane_atomic_update(st
                priv->viu.osd1_blk0_cfg[0] |= OSD_BLK_MODE_32 |
                                              OSD_COLOR_MATRIX_32_ARGB;
                break;
+       case DRM_FORMAT_ABGR8888:
+               /* For ARGB, use the pixel's alpha */
+               writel_bits_relaxed(OSD_REPLACE_EN, 0,
+                                   priv->io_base + _REG(VIU_OSD1_CTRL_STAT2));
+               priv->viu.osd1_blk0_cfg[0] |= OSD_BLK_MODE_32 |
+                                             OSD_COLOR_MATRIX_32_ABGR;
+               break;
        case DRM_FORMAT_RGB888:
                priv->viu.osd1_blk0_cfg[0] |= OSD_BLK_MODE_24 |
                                              OSD_COLOR_MATRIX_24_RGB;
@@ -346,7 +360,9 @@ static const struct drm_plane_funcs meso
 
 static const uint32_t supported_drm_formats[] = {
        DRM_FORMAT_ARGB8888,
+       DRM_FORMAT_ABGR8888,
        DRM_FORMAT_XRGB8888,
+       DRM_FORMAT_XBGR8888,
        DRM_FORMAT_RGB888,
        DRM_FORMAT_RGB565,
 };


Reply via email to