Re: [PATCH 0/4] Mediatek DRM driver detect CMDQ execution timeout by vblank IRQ
From: Chun-Kuang Hu
Date: Fri Oct 02 2020 - 23:26:59 EST
Hi, Jassi:
Jassi Brar <jassisinghbrar@xxxxxxxxx> 於 2020年10月3日 週六 上午4:30寫道:
>
> On Sun, Sep 27, 2020 at 6:04 PM Chun-Kuang Hu <chunkuang.hu@xxxxxxxxxx> wrote:
> >
> > CMDQ helper provide timer to detect execution timeout, but DRM driver
> > could have a better way to detect execution timeout by vblank IRQ.
> > For DRM, CMDQ command should execute in vblank, so if it fail to
> > execute in next 2 vblank, timeout happen. Even though we could
> > calculate time between 2 vblank and use timer to delect, this would
> > make things more complicated.
> >
> > This introduce a series refinement for CMDQ mailbox controller and CMDQ
> > helper. Remove timer handler in helper function because different
> > client have different way to detect timeout. Use standard mailbox
> > callback instead of proprietary one to get the necessary data
> > in callback function. Remove struct cmdq_client to access client
> > instance data by struct mbox_client.
> >
> > Chun-Kuang Hu (4):
> > soc / drm: mediatek: cmdq: Remove timeout handler in helper function
> > mailbox / soc / drm: mediatek: Use mailbox rx_callback instead of
> > cmdq_task_cb
> > mailbox / soc / drm: mediatek: Remove struct cmdq_client
> > drm/mediatek: Detect CMDQ execution timeout
> >
> > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 54 ++++++---
> > drivers/mailbox/mtk-cmdq-mailbox.c | 24 ++--
> > drivers/soc/mediatek/mtk-cmdq-helper.c | 146 ++---------------------
> > include/linux/mailbox/mtk-cmdq-mailbox.h | 25 +---
> > include/linux/soc/mediatek/mtk-cmdq.h | 54 +--------
> > 5 files changed, 66 insertions(+), 237 deletions(-)
> >
> Please break this into two patchsets - one for mailbox and one for its users.
> Also, CC original author and recent major contributors to mtk-cmdq-mailbox.c
>
Agree with you. But for patch [2/4] ("Use mailbox rx_callback instead
of cmdq_task_cb"), I think it would be a long term process.
I would break it into:
1. mtk-cmdq-mailbox.c: add rx_callback and keep cmdq_task_cb because
client is using cmdq_task_cb.
2. client: change from cmdq_task_cb to rx_callback.
3. mtk-cmdq-mailbox.c: remove cmdq_task_cb.
The three step has dependency, but the 2nd should move to another
series, so I would go 1st step first.
Regards,
Chun-Kuang.
> Thanks.