mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
drm/vc4: txp: Force alpha to be 0xff if it's disabled
[ Upstream commit5453343a88
] If we use a format that has padding instead of the alpha component (such as XRGB8888), it appears that the Transposer will fill the padding to 0, disregarding what was stored in the input buffer padding. This leads to issues with IGT, since it will set the padding to 0xff, but will then compare the CRC of the two frames which will thus fail. Another nice side effect is that it is now possible to just use the buffer as ARGB. Fixes:008095e065
("drm/vc4: Add support for the transposer block") Signed-off-by: Maxime Ripard <maxime@cerno.tech> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://lore.kernel.org/r/20220328153659.2382206-4-maxime@cerno.tech Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
241e746ee9
commit
4f3b254367
1 changed files with 6 additions and 0 deletions
|
@ -304,6 +304,12 @@ static void vc4_txp_connector_atomic_commit(struct drm_connector *conn,
|
|||
|
||||
if (fb->format->has_alpha)
|
||||
ctrl |= TXP_ALPHA_ENABLE;
|
||||
else
|
||||
/*
|
||||
* If TXP_ALPHA_ENABLE isn't set and TXP_ALPHA_INVERT is, the
|
||||
* hardware will force the output padding to be 0xff.
|
||||
*/
|
||||
ctrl |= TXP_ALPHA_INVERT;
|
||||
|
||||
gem = drm_fb_cma_get_gem_obj(fb, 0);
|
||||
TXP_WRITE(TXP_DST_PTR, gem->paddr + fb->offsets[0]);
|
||||
|
|
Loading…
Reference in a new issue