Message ID | 20200214044954.16923-2-bibby.hsieh@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] arm64: dts: mt8183: Add gce setting in display node | expand |
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/ > > 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);
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); >
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);
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. This patch depends on ptach: [0/3] Remove atomic_exec https://patchwork.kernel.org/cover/11381677/ Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 1 + 1 file changed, 1 insertion(+)