Android Hardware Composer supports alpha values applied to layers.
Enabling non-opaque layers for the STM CRTC could help offload GPU
resources for screen composition.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-...@foss.st.com>
Acked-by: Yannick Fertre <yannick.fer...@foss.st.com>
Reviewed-by: Yannick Fertre <yannick.fer...@foss.st.com>
---
 drivers/gpu/drm/stm/ltdc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 195de30eb90c..e0fef8bacfa8 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -845,7 +845,7 @@ static void ltdc_plane_atomic_update(struct drm_plane 
*plane,
                        LXCFBLR_CFBLL | LXCFBLR_CFBP, val);
 
        /* Specifies the constant alpha value */
-       val = CONSTA_MAX;
+       val = newstate->alpha >> 8;
        reg_update_bits(ldev->regs, LTDC_L1CACR + lofs, LXCACR_CONSTA, val);
 
        /* Specifies the blending factors */
@@ -997,6 +997,8 @@ static struct drm_plane *ltdc_plane_create(struct 
drm_device *ddev,
 
        drm_plane_helper_add(plane, &ltdc_plane_helper_funcs);
 
+       drm_plane_create_alpha_property(plane);
+
        DRM_DEBUG_DRIVER("plane:%d created\n", plane->base.id);
 
        return plane;
-- 
2.17.1

Reply via email to