lkml.org 
[lkml]   [2020]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH v4 10/13] soc: mediatek: cmdq: export finalize function
    From
    Date
    Hi, Dennis:

    On Tue, 2020-03-03 at 18:58 +0800, Dennis YC Hsieh wrote:
    > Export finalize function to client which helps append eoc and jump
    > command to pkt. Let client decide call finalize or not.
    >

    Reviewed-by: CK Hu <ck.hu@mediatek.com>

    > Signed-off-by: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com>
    > ---
    > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 1 +
    > drivers/soc/mediatek/mtk-cmdq-helper.c | 7 ++-----
    > include/linux/soc/mediatek/mtk-cmdq.h | 8 ++++++++
    > 3 files changed, 11 insertions(+), 5 deletions(-)
    >
    > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
    > index 0dfcd1787e65..7daaabc26eb1 100644
    > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
    > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
    > @@ -490,6 +490,7 @@ static void mtk_drm_crtc_hw_config(struct mtk_drm_crtc *mtk_crtc)
    > cmdq_pkt_clear_event(cmdq_handle, mtk_crtc->cmdq_event);
    > cmdq_pkt_wfe(cmdq_handle, mtk_crtc->cmdq_event);
    > mtk_crtc_ddp_config(crtc, cmdq_handle);
    > + cmdq_pkt_finalize(cmdq_handle);
    > cmdq_pkt_flush_async(cmdq_handle, ddp_cmdq_cb, cmdq_handle);
    > }
    > #endif
    > diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c
    > index a9ebbabb7439..59bc1164b411 100644
    > --- a/drivers/soc/mediatek/mtk-cmdq-helper.c
    > +++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
    > @@ -372,7 +372,7 @@ int cmdq_pkt_assign(struct cmdq_pkt *pkt, u16 reg_idx, u32 value)
    > }
    > EXPORT_SYMBOL(cmdq_pkt_assign);
    >
    > -static int cmdq_pkt_finalize(struct cmdq_pkt *pkt)
    > +int cmdq_pkt_finalize(struct cmdq_pkt *pkt)
    > {
    > struct cmdq_instruction inst = { {0} };
    > int err;
    > @@ -392,6 +392,7 @@ static int cmdq_pkt_finalize(struct cmdq_pkt *pkt)
    >
    > return err;
    > }
    > +EXPORT_SYMBOL(cmdq_pkt_finalize);
    >
    > static void cmdq_pkt_flush_async_cb(struct cmdq_cb_data data)
    > {
    > @@ -426,10 +427,6 @@ int cmdq_pkt_flush_async(struct cmdq_pkt *pkt, cmdq_async_flush_cb cb,
    > unsigned long flags = 0;
    > struct cmdq_client *client = (struct cmdq_client *)pkt->cl;
    >
    > - err = cmdq_pkt_finalize(pkt);
    > - if (err < 0)
    > - return err;
    > -
    > pkt->cb.cb = cb;
    > pkt->cb.data = data;
    > pkt->async_cb.cb = cmdq_pkt_flush_async_cb;
    > diff --git a/include/linux/soc/mediatek/mtk-cmdq.h b/include/linux/soc/mediatek/mtk-cmdq.h
    > index fec292aac83c..99e77155f967 100644
    > --- a/include/linux/soc/mediatek/mtk-cmdq.h
    > +++ b/include/linux/soc/mediatek/mtk-cmdq.h
    > @@ -213,6 +213,14 @@ int cmdq_pkt_poll_mask(struct cmdq_pkt *pkt, u8 subsys,
    > */
    > int cmdq_pkt_assign(struct cmdq_pkt *pkt, u16 reg_idx, u32 value);
    >
    > +/**
    > + * cmdq_pkt_finalize() - Append EOC and jump command to pkt.
    > + * @pkt: the CMDQ packet
    > + *
    > + * Return: 0 for success; else the error code is returned
    > + */
    > +int cmdq_pkt_finalize(struct cmdq_pkt *pkt);
    > +
    > /**
    > * cmdq_pkt_flush_async() - trigger CMDQ to asynchronously execute the CMDQ
    > * packet and call back at the end of done packet

    \
     
     \ /
      Last update: 2020-03-04 03:42    [W:2.715 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site