mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-12 04:15:21 +02:00
drm/mediatek: Turn off the layers with zero width or height
[ Upstream commit6b9946f455
] 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:453c336463
("drm/mediatek: Add ovl_adaptor support for MT8195") Fixes:d886c0009b
("drm/mediatek: Add ETHDR support for MT8195") Reviewed-by: CK Hu <ck.hu@mediatek.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Fixes:119f517362
("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.") Signed-off-by: Hsiao 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: Chun-Kuang Hu <chunkuang.hu@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
7445f2ab56
commit
5dbb98e7fa
|
@ -111,7 +111,7 @@ void mtk_ovl_adaptor_layer_config(struct device *dev, unsigned int idx,
|
||||||
merge = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_MERGE0 + idx];
|
merge = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_MERGE0 + idx];
|
||||||
ethdr = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_ETHDR0];
|
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_merge_stop_cmdq(merge, cmdq_pkt);
|
||||||
mtk_mdp_rdma_stop(rdma_l, cmdq_pkt);
|
mtk_mdp_rdma_stop(rdma_l, cmdq_pkt);
|
||||||
mtk_mdp_rdma_stop(rdma_r, cmdq_pkt);
|
mtk_mdp_rdma_stop(rdma_r, cmdq_pkt);
|
||||||
|
|
|
@ -160,7 +160,12 @@ void mtk_ethdr_layer_config(struct device *dev, unsigned int idx,
|
||||||
if (idx >= 4)
|
if (idx >= 4)
|
||||||
return;
|
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));
|
mtk_ddp_write(cmdq_pkt, 0, &mixer->cmdq_base, mixer->regs, MIX_L_SRC_SIZE(idx));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user