remoteproc: k3-dsp: Drop check performed in k3_dsp_rproc_{mbox_callback/kick}
authorSiddharth Vadapalli <s-vadapalli@ti.com>
Tue, 13 May 2025 05:44:36 +0000 (11:14 +0530)
committerMathieu Poirier <mathieu.poirier@linaro.org>
Tue, 20 May 2025 17:02:16 +0000 (11:02 -0600)
Commit ea1d6fb5b571 ("remoteproc: k3-dsp: Acquire mailbox handle during
probe routine") introduced a check in the "k3_dsp_rproc_mbox_callback()"
and "k3_dsp_rproc_kick()" callbacks, causing them to exit if the remote
core's state is "RPROC_DETACHED". However, the "__rproc_attach()"
function that is responsible for attaching to a remote core, updates the
state of the remote core to "RPROC_ATTACHED" only after invoking
"rproc_start_subdevices()".

The "rproc_start_subdevices()" function triggers the probe of the Virtio
RPMsg devices associated with the remote core, which require that the
"k3_dsp_rproc_kick()" and "k3_dsp_rproc_mbox_callback()" callbacks are
functional. Hence, drop the check in the callbacks.

Fixes: ea1d6fb5b571 ("remoteproc: k3-dsp: Acquire mailbox handle during probe routine")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Tested-by: Judith Mendez <jm@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20250513054510.3439842-3-b-padhi@ti.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
drivers/remoteproc/ti_k3_dsp_remoteproc.c

index a695890..35e8c3c 100644 (file)
@@ -115,10 +115,6 @@ static void k3_dsp_rproc_mbox_callback(struct mbox_client *client, void *data)
        const char *name = kproc->rproc->name;
        u32 msg = omap_mbox_message(data);
 
-       /* Do not forward messages from a detached core */
-       if (kproc->rproc->state == RPROC_DETACHED)
-               return;
-
        dev_dbg(dev, "mbox msg: 0x%x\n", msg);
 
        switch (msg) {
@@ -159,10 +155,6 @@ static void k3_dsp_rproc_kick(struct rproc *rproc, int vqid)
        mbox_msg_t msg = (mbox_msg_t)vqid;
        int ret;
 
-       /* Do not forward messages to a detached core */
-       if (kproc->rproc->state == RPROC_DETACHED)
-               return;
-
        /* send the index of the triggered virtqueue in the mailbox payload */
        ret = mbox_send_message(kproc->mbox, (void *)msg);
        if (ret < 0)