Dne nedelja, 05. junij 2022 ob 11:40:18 CEST je Roman Stratiienko napisal(a): > Otherwise alpha value is discarded, resulting incorrect pixel > apperance on the display. > > This also fixes missing transparency for the most bottom layer. Can you explain that a bit more? Also, BSP driver never enables this bit. What are we doing differently? > > Test applications and videos w/ w/o this patch are available at [1]. > > [1]: https://github.com/GloDroid/glodroid_tests/issues/1 As stated in other emails, commit messages should not contain external links (per patch rules). Best regards, Jernej > Signed-off-by: Roman Stratiienko <r.stratiienko@xxxxxxxxx> > > --- > Changelog: > > V2: Added code hunk missing in v1 > --- > drivers/gpu/drm/sun4i/sun8i_mixer.c | 5 +++-- > drivers/gpu/drm/sun4i/sun8i_mixer.h | 1 + > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c > b/drivers/gpu/drm/sun4i/sun8i_mixer.c index 6b1711a9a71f..ba2932aaed08 > 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c > +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c > @@ -320,8 +320,9 @@ static void sun8i_mixer_mode_set(struct sunxi_engine > *engine, else > val = 0; > > - regmap_update_bits(engine->regs, SUN8I_MIXER_BLEND_OUTCTL(bld_base), > - SUN8I_MIXER_BLEND_OUTCTL_INTERLACED, val); > + val |= SUN8I_MIXER_BLEND_OUTCTL_PREMULTIPLY; > + > + regmap_write(engine->regs, SUN8I_MIXER_BLEND_OUTCTL(bld_base), val); > > DRM_DEBUG_DRIVER("Switching display mixer interlaced mode %s\n", > interlaced ? "on" : "off"); > diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h > b/drivers/gpu/drm/sun4i/sun8i_mixer.h index ebfc276b2464..bc12c95af6f3 > 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h > +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h > @@ -65,6 +65,7 @@ > #define SUN8I_MIXER_BLEND_ROUTE_PIPE_MSK(n) (0xf << ((n) << 2)) > #define SUN8I_MIXER_BLEND_ROUTE_PIPE_SHIFT(n) ((n) << 2) > > +#define SUN8I_MIXER_BLEND_OUTCTL_PREMULTIPLY BIT(0) > #define SUN8I_MIXER_BLEND_OUTCTL_INTERLACED BIT(1) > > #define SUN50I_MIXER_BLEND_CSC_CTL_EN(ch) BIT(ch)