Commit 6b9946f4 authored by Hsiao Chien Sung's avatar Hsiao Chien Sung Committed by Chun-Kuang Hu
Browse files

drm/mediatek: Turn off the layers with zero width or height



We found that IGT (Intel GPU Tool) will try to commit layers with
zero width or height and lead to undefined behaviors in hardware.
Disable the layers in such a situation.

Fixes: 453c3364 ("drm/mediatek: Add ovl_adaptor support for MT8195")
Fixes: d886c000 ("drm/mediatek: Add ETHDR support for MT8195")
Reviewed-by: default avatarCK Hu <ck.hu@mediatek.com>
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Fixes: 119f5173 ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.")
Signed-off-by: default avatarHsiao Chien Sung <shawn.sung@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20240620-igt-v3-6-a9d62d2e2c7e@mediatek.com/


Signed-off-by: default avatarChun-Kuang Hu <chunkuang.hu@kernel.org>
parent 31c0fbf6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ void mtk_ovl_adaptor_layer_config(struct device *dev, unsigned int idx,
	merge = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_MERGE0 + idx];
	ethdr = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_ETHDR0];

	if (!pending->enable) {
	if (!pending->enable || !pending->width || !pending->height) {
		mtk_merge_stop_cmdq(merge, cmdq_pkt);
		mtk_mdp_rdma_stop(rdma_l, cmdq_pkt);
		mtk_mdp_rdma_stop(rdma_r, cmdq_pkt);
+6 −1
Original line number Diff line number Diff line
@@ -160,7 +160,12 @@ void mtk_ethdr_layer_config(struct device *dev, unsigned int idx,
	if (idx >= 4)
		return;

	if (!pending->enable) {
	if (!pending->enable || !pending->width || !pending->height) {
		/*
		 * instead of disabling layer with MIX_SRC_CON directly
		 * set the size to 0 to avoid screen shift due to mixer
		 * mode switch (hardware behavior)
		 */
		mtk_ddp_write(cmdq_pkt, 0, &mixer->cmdq_base, mixer->regs, MIX_L_SRC_SIZE(idx));
		return;
	}