Message ID | 20231016104010.3270-22-shawn.sung@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add display driver for MT8188 VDOSYS1 | expand |
Hi, Hsiao-chien: On Mon, 2023-10-16 at 18:40 +0800, Hsiao Chien Sung wrote: > Do not reset Merge while using CMDQ because reset API doesn't > wait for frame done event as CMDQ does and could lead to > underrun when the layer is switching off. Reviewed-by: CK Hu <ck.hu@mediatek.com> > > Fixes: aaf94f7c3ae6 ("drm/mediatek: Add display merge async reset > control") > > Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com> > --- > drivers/gpu/drm/mediatek/mtk_disp_merge.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_merge.c > b/drivers/gpu/drm/mediatek/mtk_disp_merge.c > index fd14a59bc951..c19fb1836034 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_merge.c > +++ b/drivers/gpu/drm/mediatek/mtk_disp_merge.c > @@ -104,7 +104,7 @@ void mtk_merge_stop_cmdq(struct device *dev, > struct cmdq_pkt *cmdq_pkt) > mtk_ddp_write(cmdq_pkt, 0, &priv->cmdq_reg, priv->regs, > DISP_REG_MERGE_CTRL); > > - if (priv->async_clk) > + if (!cmdq_pkt && priv->async_clk) > reset_control_reset(priv->reset_ctl); > } >
Il 16/10/23 12:40, Hsiao Chien Sung ha scritto: > Do not reset Merge while using CMDQ because reset API doesn't > wait for frame done event as CMDQ does and could lead to > underrun when the layer is switching off. > > Fixes: aaf94f7c3ae6 ("drm/mediatek: Add display merge async reset control") > > Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_merge.c b/drivers/gpu/drm/mediatek/mtk_disp_merge.c index fd14a59bc951..c19fb1836034 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_merge.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_merge.c @@ -104,7 +104,7 @@ void mtk_merge_stop_cmdq(struct device *dev, struct cmdq_pkt *cmdq_pkt) mtk_ddp_write(cmdq_pkt, 0, &priv->cmdq_reg, priv->regs, DISP_REG_MERGE_CTRL); - if (priv->async_clk) + if (!cmdq_pkt && priv->async_clk) reset_control_reset(priv->reset_ctl); }
Do not reset Merge while using CMDQ because reset API doesn't wait for frame done event as CMDQ does and could lead to underrun when the layer is switching off. Fixes: aaf94f7c3ae6 ("drm/mediatek: Add display merge async reset control") Signed-off-by: Hsiao Chien Sung <shawn.sung@mediatek.com> --- drivers/gpu/drm/mediatek/mtk_disp_merge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)