Messages in this thread | | | Subject | Re: [PATCH 2/3] drm/mediatek: make sure previous message done or be aborted before send | From | CK Hu <> | Date | Tue, 18 Feb 2020 16:22:42 +0800 |
| |
Hi, Bibby:
On Fri, 2020-02-14 at 14:48 +0800, CK Hu wrote: > Hi, Bibby: > > On Fri, 2020-02-14 at 12:49 +0800, Bibby Hsieh wrote: > > Mediatek CMDQ driver removed atomic parameter and implementation > > related to atomic. DRM driver need to make sure previous message > > done or be aborted before we send next message. > > > > If previous message is still waiting for event, it means the > > setting hasn't been updated into display hardware register, > > we can abort the message and send next message to update the > > newest setting into display hardware. > > If previous message already started, we have to wait it until > > transmission has been completed. > > > > So we flush mbox client before we send new message to controller > > driver. > > > > Reviewed-by: CK Hu <ck.hu@mediatek.com> > > > This patch depends on ptach: > > [0/3] Remove atomic_exec > > https://patchwork.kernel.org/cover/11381677/ > >
This patch does not depend on any patch, so applied to mediatek-drm-fixes-5.6 [1], thanks.
[1] https://github.com/ckhu-mediatek/linux.git-tags/commits/mediatek-drm-fixes-5.6
Regards, CK
> > Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com> > > --- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > index 3c53ea22208c..e35b66c5ba0f 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > @@ -491,6 +491,7 @@ static void mtk_drm_crtc_hw_config(struct mtk_drm_crtc *mtk_crtc) > > } > > #if IS_ENABLED(CONFIG_MTK_CMDQ) > > if (mtk_crtc->cmdq_client) { > > + mbox_flush(mtk_crtc->cmdq_client->chan, 2000); > > cmdq_handle = cmdq_pkt_create(mtk_crtc->cmdq_client, PAGE_SIZE); > > cmdq_pkt_clear_event(cmdq_handle, mtk_crtc->cmdq_event); > > cmdq_pkt_wfe(cmdq_handle, mtk_crtc->cmdq_event); >
| |