[PATCH] mailbox: mtk-cmdq: Add unregister mailbox controller in cmdq_remove()
Jason-JH Lin (林睿祥)
Jason-JH.Lin at mediatek.com
Mon Jun 17 20:28:25 PDT 2024
Hi Angelo,
On Fri, 2024-06-14 at 00:52 +0800, Jason-JH.Lin wrote:
> Hi Angelo,
>
> On Thu, 2024-06-13 at 17:10 +0200, AngeloGioacchino Del Regno wrote:
> > Il 13/06/24 17:06, Jason-JH.Lin ha scritto:
> > > Add unregister mailbox controller in cmdq_remove to fix cmdq
> > > unbind
> > > WARN_ON message from pm_runtime_get_sync() in
> > > cmdq_mbox_shutdown().
> > >
> > > Fixes: 623a6143a845 ("mailbox: mediatek: Add Mediatek CMDQ
> > > driver")
> > > Signed-off-by: Jason-JH.Lin <jason-jh.lin at mediatek.com>
> >
> > Hello,
> >
> > I think you forgot about...
> >
> >
>
>
https://lore.kernel.org/all/6fcd48b14e865c25e6db7559fe6b946537bfa0ce.camel@mediatek.com/
> >
>
> I'll send this series next week after testing it.
>
>
> > ...as that would also resolve this one without any hacks.
>
> I thought it was another problem, so I sent this patch.
>
> After looking to the kerneldoc of devm_mbox_controller_unregister(),
> I
> found that it's not necessary to call this anywhere.
>
> I'll drop this patch. Thanks for the review.
I found that the series of "Move pm_runimte_get and put to
mbox_chan_ops API" can not fix this unbind crash issue.
It seems they are 2 different issues.
So I think calling devm_mbox_controller_unregister() in cmdq_remove()
can ensure the CMDQ device is not removed and be paired to
cmdq_probe().
Regards,
Jason-JH.Lin
>
> Regards,
> Jason-JH.Lin
>
> >
> > Cheers,
> > Angelo
> >
> > > ---
> > > drivers/mailbox/mtk-cmdq-mailbox.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c
> > > b/drivers/mailbox/mtk-cmdq-mailbox.c
> > > index 4aa394e91109..1399e18a39a4 100644
> > > --- a/drivers/mailbox/mtk-cmdq-mailbox.c
> > > +++ b/drivers/mailbox/mtk-cmdq-mailbox.c
> > > @@ -371,6 +371,8 @@ static void cmdq_remove(struct
> > > platform_device
> > > *pdev)
> > > {
> > > struct cmdq *cmdq = platform_get_drvdata(pdev);
> > >
> > > + devm_mbox_controller_unregister(&pdev->dev, &cmdq->mbox);
> > > +
> > > if (cmdq->pdata->sw_ddr_en)
> > > cmdq_sw_ddr_enable(cmdq, false);
> > >
> >
> >
More information about the Linux-mediatek
mailing list