Skip to content

Commit 995d4d5

Browse files
Jason-JH.LinChun-Kuang Hu
authored andcommitted
drm/mediatek: ovl: Fix XRGB format breakage for blend_modes unsupported SoCs
OVL_CON_AEN is for alpha blending enable. For the SoC that is supported the blend_modes, OVL_CON_AEN will always enabled to use constant alpha and then use the ignore_pixel_alpha bit to do the alpha blending for XRGB8888 format. Note that ignore pixel alpha bit is not supported if the SoC is not supported the blend_modes. So it will break the original setting of XRGB8888 format for the blend_modes unsupported SoCs, such as MT8173. To fix the downgrade issue, enable alpha blending only when a valid blend_mode or has_alpha is set. Fixes: bc46eb5 ("drm/mediatek: Support DRM plane alpha in OVL") Signed-off-by: Jason-JH.Lin <[email protected]> Reviewed-by: CK Hu <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Signed-off-by: Chun-Kuang Hu <[email protected]>
1 parent 9852d85 commit 995d4d5

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

drivers/gpu/drm/mediatek/mtk_disp_ovl.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,14 @@ void mtk_ovl_layer_config(struct device *dev, unsigned int idx,
473473

474474
con = ovl_fmt_convert(ovl, fmt, blend_mode);
475475
if (state->base.fb) {
476-
con |= OVL_CON_AEN;
477476
con |= state->base.alpha & OVL_CON_ALPHA;
477+
478+
/*
479+
* For blend_modes supported SoCs, always enable alpha blending.
480+
* For blend_modes unsupported SoCs, enable alpha blending when has_alpha is set.
481+
*/
482+
if (blend_mode || state->base.fb->format->has_alpha)
483+
con |= OVL_CON_AEN;
478484
}
479485

480486
/* CONST_BLD must be enabled for XRGB formats although the alpha channel

0 commit comments

Comments
 (0)