[PATCH v4] remoteproc: imx_rproc: Invoke the callback directly
Sebastian Andrzej Siewior
bigeasy at linutronix.de
Tue Jul 14 01:31:30 PDT 2026
On 2026-07-03 10:24:18 [+0200], To imx at lists.linux.dev 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 <peng.fan at nxp.com>
> Reviewed-by: Mathieu Poirier <mathieu.poirier at linaro.org>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
A friendly ping.
> ---
> v3…v4: https://lore.kernel.org/r/20260617-imx_mbox_rproc-v3-0-77948112defc@linutronix.de
> - 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/20260603-imx_mbox_rproc-v2-0-a0059dc3b69a@linutronix.de
> - 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/20260529-imx_mbox_rproc-v1-0-b8ffc36e11e5@linutronix.de
> - 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
More information about the linux-arm-kernel
mailing list