Message ID | 20210907151534.6013-1-raphael.gallais-pou@foss.st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/stm: ltdc: add layer alpha support | expand |
On 9/7/21 5:15 PM, Raphael Gallais-Pou wrote: > 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-pou@foss.st.com> > Acked-by: Yannick Fertre <yannick.fertre@foss.st.com> > Reviewed-by: Yannick Fertre <yannick.fertre@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, <dc_plane_helper_funcs); > > + drm_plane_create_alpha_property(plane); > + > DRM_DEBUG_DRIVER("plane:%d created\n", plane->base.id); > > return plane; > Applied on drm-misc-next. Many thanks for your patch, Philippe :-)
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, <dc_plane_helper_funcs); + drm_plane_create_alpha_property(plane); + DRM_DEBUG_DRIVER("plane:%d created\n", plane->base.id); return plane;