summaryrefslogtreecommitdiff
path: root/drivers/remoteproc/ti_k3_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/remoteproc/ti_k3_common.c')
-rw-r--r--drivers/remoteproc/ti_k3_common.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/remoteproc/ti_k3_common.c b/drivers/remoteproc/ti_k3_common.c
index d4f20900f33b..56b71652e449 100644
--- a/drivers/remoteproc/ti_k3_common.c
+++ b/drivers/remoteproc/ti_k3_common.c
@@ -155,6 +155,13 @@ int k3_rproc_release(struct k3_rproc *kproc)
}
EXPORT_SYMBOL_GPL(k3_rproc_release);
+static void k3_rproc_free_channel(void *data)
+{
+ struct k3_rproc *kproc = data;
+
+ mbox_free_channel(kproc->mbox);
+}
+
int k3_rproc_request_mbox(struct rproc *rproc)
{
struct k3_rproc *kproc = rproc->priv;
@@ -173,19 +180,9 @@ int k3_rproc_request_mbox(struct rproc *rproc)
return dev_err_probe(dev, PTR_ERR(kproc->mbox),
"mbox_request_channel failed\n");
- /*
- * Ping the remote processor, this is only for sanity-sake for now;
- * there is no functional effect whatsoever.
- *
- * Note that the reply will _not_ arrive immediately: this message
- * will wait in the mailbox fifo until the remote processor is booted.
- */
- ret = mbox_send_message(kproc->mbox, (void *)RP_MBOX_ECHO_REQUEST);
- if (ret < 0) {
- dev_err(dev, "mbox_send_message failed (%pe)\n", ERR_PTR(ret));
- mbox_free_channel(kproc->mbox);
+ ret = devm_add_action_or_reset(dev, k3_rproc_free_channel, kproc);
+ if (ret)
return ret;
- }
return 0;
}