Re: [PATCH v2 0/4] CMDQ refinement of Mediatek DRM driver

From: Chun-Kuang Hu
Date: Tue Sep 21 2021 - 09:15:34 EST


Hi, Enric:

Enric Balletbo Serra <eballetbo@xxxxxxxxx> 於 2021年9月21日 週二 下午4:36寫道:
>
> Hi Chun-Kuang,
>
> (again without html format, sorry for the noise)
>
> Missatge de Chun-Kuang Hu <chunkuang.hu@xxxxxxxxxx> del dia dj., 12
> d’ag. 2021 a les 2:13:
> >
> > Chun-Kuang Hu <chunkuang.hu@xxxxxxxxxx> 於 2021年8月9日 週一 上午7:47寫道:
> > >
> > > These refinements include using standard mailbox callback interface,
> > > timeout detection, and a fixed cmdq_handle.
> >
> > For this series, applied to mediatek-drm-next [1].
> >
> > [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next
> >
>
> These patches seem to break the display on the Acer Chromebook R 13
> (MT8173) in the current mainline. After running a bisection it pointed
> me to the following commit
>
> commit f4be17cd5b14dd73545b0e014a63ebe9ab5ef837
> Author: Chun-Kuang Hu <chunkuang.hu@xxxxxxxxxx>
> Date: Sun Jul 4 15:36:48 2021 +0800
>
> drm/mediatek: Remove struct cmdq_client
>
> Reverting this patch alone is not trivial, so I ended up reverting the
> full series, and I can confirm that reverting the full series makes
> the display work again.

I think you could not just revert "drm/mediatek: Remove struct
cmdq_client", you should also revert the patches after it, such as

"drm/mediatek: Clear pending flag when cmdq packet is done"
"drm/mediatek: Add cmdq_handle in mtk_crtc"
"drm/mediatek: Detect CMDQ execution timeout"

If "drm/mediatek: Remove struct cmdq_client" is the patch cause
display abnormal, I think you could compare code w/ and w/o this
patch. Focus on the value accuracy, such as cmdq_cl and cmdq_chan. And
focus on the flow accuracy, such as mtk_drm_crtc_update_config() and
ddp_cmdq_cb(). If this could not find the problem, I think the latest
way is to break this patch into small patches, changes little in each
small patches and we could finally find out the problem.

Regards,
Chun-Kuang.

>
> Unfortunately, after the merge window, different things broke for this
> device, and I didn't finish isolating them, and it is not clear to me
> yet whether the logs I'm getting are useful for this specific issue or
> not. Basically with this series merged the kernel seems to be stuck,
> and the display is not working. Latest message is
>
> [ 12.329173] mtk-iommu 10205000.iommu: Partial TLB flush timed out,
> falling back to full flush
>
> Without the series, the kernel goes far and display works, however
> there are other issues affecting the cros-ec, but I think that's
> another issue.
>
> I'll try to dig a bit more, but, meanwhile, if you have any idea
> please let me know.
>
> Thanks,
> Enric
>
>
> > Regards,
> > Chun-Kuang.
> >
> > >
> > > Changes in v2:
> > > 1. Define mtk_drm_cmdq_pkt_create() and mtk_drm_cmdq_pkt_destroy()
> > > when CONFIG_MTK_CMDQ is reachable.
> > >
> > > Chun-Kuang Hu (4):
> > > drm/mediatek: Use mailbox rx_callback instead of cmdq_task_cb
> > > drm/mediatek: Remove struct cmdq_client
> > > drm/mediatek: Detect CMDQ execution timeout
> > > drm/mediatek: Add cmdq_handle in mtk_crtc
> > >
> > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 110 ++++++++++++++++++++----
> > > 1 file changed, 91 insertions(+), 19 deletions(-)
> > >
> > > --
> > > 2.25.1
> > >