Re: [PATCH v4] remoteproc: imx_rproc: Invoke the callback directly

Sebastian Andrzej Siewior <[email protected]> Tue, 14 Jul 2026 10:31:30 +0200
Newsgroups org.kernel.vger.linux-remoteproc,dev.linux.lists.imx,dev.linux.lists.linux-rt-devel,org.infradead.lists.linux-arm-kernel
Message-ID <[email protected]>
On 2026-07-03 10:24:18 [+0200], To [email protected] wrote:
> The imx-mailbox driver moved the callback invocation into the threaded
> IRQ handler. This means the callback is invoked in preemptible context
> and there is no need to schedule the kworker for the
> imx_rproc_notified_idr_cb() invocation.
> 
> This was tested with the rpmsg-tty driver on imx93.
> 
> Remove the workqueue handling and invoke the imx_rproc_notified_idr_cb()
> callback directly.
> 
> Reviewed-by: Peng Fan <[email protected]>
> Reviewed-by: Mathieu Poirier <[email protected]>
> Signed-off-by: Sebastian Andrzej Siewior <[email protected]>

A friendly ping.

> ---
> v3…v4: https://lore.kernel.org/r/[email protected]
>   - The mailbox bits are part of v7.2-rc1. This is just a repost of the
>     imx_rproc driver which is left.
> 
> v2…v3: https://lore.kernel.org/r/[email protected]
>   - Forward the error in imx_mu_generic_tx() to the caller (new patch
>     #1)
>   - Extend the patch description a bit for for "Start splitting the IRQ
>     handler" to briefly explain why callbacks are moved to the threaded
>     handler.
>   - Drop imx_mu_con_priv::pending. The primary handler wakes its
>     threaded handler. Once the handler is woken, the pending flag must
>     be set and there is no need to set/ clear it.
>   - Avoid the double clk_disable_unprepare() if
>     devm_mbox_controller_register() fails.
> 
> v1…v2: https://lore.kernel.org/r/[email protected]
>   - Using correct register to enable RXDB event.
>   - Update commit description for the "threaded interrupt", "unmasks the
>     interrupt" => "masks the interrupt event".
>   - Add a shutdown field so that the interrupt does not unmask the
>     interrupt if it has been already disabled because the channel is
>     about to be shutdown.  A possible race mentioned by sashiko.
>   - Use devm_pm_runtime_enable(). This should avoid a possible race
>     sashiko mentioned.
>   - Use devm_of_platform_populate().

Sebastian