Hi, Jason: On Tue, 2023-09-19 at 03:21 +0800, Jason-JH.Lin wrote: > Add cmdq_mbox_stop to disable GCE thread. > > To support the error handling or the stop flow of the GCE loopping > thread, lopping thread user can call cmdq_mbox_stop to disable the > GCE HW thread. > > Signed-off-by: Jason-JH.Lin <jason-jh.lin@xxxxxxxxxxxx> > --- > drivers/mailbox/mtk-cmdq-mailbox.c | 6 ++++++ > include/linux/mailbox/mtk-cmdq-mailbox.h | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c > b/drivers/mailbox/mtk-cmdq-mailbox.c > index 4d62b07c1411..8bd39fecbf00 100644 > --- a/drivers/mailbox/mtk-cmdq-mailbox.c > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c > @@ -469,6 +469,12 @@ static void cmdq_mbox_shutdown(struct mbox_chan > *chan) > spin_unlock_irqrestore(&thread->chan->lock, flags); > } > > +void cmdq_mbox_stop(struct mbox_chan *chan) > +{ > + cmdq_mbox_shutdown(chan); cmdq_mobx_stop() is equal to cmdq_mbox_shutdown(), so client driver could call mbox_free_channel() to do this and this function is redundant. Regards, CK > +} > +EXPORT_SYMBOL(cmdq_mbox_stop); > + > static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long > timeout) > { > struct cmdq_thread *thread = (struct cmdq_thread *)chan- > >con_priv; > diff --git a/include/linux/mailbox/mtk-cmdq-mailbox.h > b/include/linux/mailbox/mtk-cmdq-mailbox.h > index a8f0070c7aa9..f3e577335acb 100644 > --- a/include/linux/mailbox/mtk-cmdq-mailbox.h > +++ b/include/linux/mailbox/mtk-cmdq-mailbox.h > @@ -79,5 +79,6 @@ struct cmdq_pkt { > }; > > u8 cmdq_get_shift_pa(struct mbox_chan *chan); > +void cmdq_mbox_stop(struct mbox_chan *chan); > > #endif /* __MTK_CMDQ_MAILBOX_H__ */