[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aKYoYYMyzaGoW-al@p14s>
Date: Wed, 20 Aug 2025 13:56:17 -0600
From: Mathieu Poirier <mathieu.poirier@...aro.org>
To: Hiago De Franco <hiagofranco@...il.com>
Cc: Bjorn Andersson <andersson@...nel.org>, Andrew Davis <afd@...com>,
Beleswar Prasad Padhi <b-padhi@...com>,
linux-remoteproc@...r.kernel.org, linux-kernel@...r.kernel.org,
Hiago De Franco <hiago.franco@...adex.com>
Subject: Re: [PATCH] remoteproc: ti_k3_common: remove remote processor
mailbox ping
On Wed, Aug 06, 2025 at 02:48:17PM -0300, Hiago De Franco wrote:
> From: Hiago De Franco <hiago.franco@...adex.com>
>
> As of today, pinging the remote processor during k3_rproc_request_mbox()
> does not have any functional effect. This behavior was originally based on
> the OMAP remoteproc driver, where the idea was to send messages such as
> suspend requests (among others) to the remote processor, but this was
> never upstreamed.
>
> Currently, the ping message has no effect in upstream usage and causes an
> unread message to remain in the mailbox, which ultimately prevents the
> system from entering suspend mode:
>
> Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
> printk: Suspending console(s) (use no_console_suspend to debug)
> omap-mailbox 29000000.mailbox: fifo 1 has unexpected unread messages
> omap-mailbox 29000000.mailbox: PM: dpm_run_callback(): platform_pm_suspend returns -16
> omap-mailbox 29000000.mailbox: PM: failed to suspend: error -16
>
> The ping is only replied if the remote core firmware is capable of doing
> it, otherwise the unread message stays into the mailbox.
>
> Remove the ping and fix the suspend issue.
>
> Suggested-by: Andrew Davis <afd@...com>
> Signed-off-by: Hiago De Franco <hiago.franco@...adex.com>
> ---
> Hi,
>
> this is the result patch of the discussion from
>
> https://lore.kernel.org/lkml/20250725150713.barg5lhqr4reoxv3@hiagonb/
> ---
> drivers/remoteproc/ti_k3_common.c | 15 ---------------
> 1 file changed, 15 deletions(-)
>
Applied - thanks,
Mathieu
> diff --git a/drivers/remoteproc/ti_k3_common.c b/drivers/remoteproc/ti_k3_common.c
> index d4f20900f33bdd92a59c62d0a7b166c4ad66ed16..8266e11914af87ac38977763099521dee4334348 100644
> --- a/drivers/remoteproc/ti_k3_common.c
> +++ b/drivers/remoteproc/ti_k3_common.c
> @@ -160,7 +160,6 @@ int k3_rproc_request_mbox(struct rproc *rproc)
> struct k3_rproc *kproc = rproc->priv;
> struct mbox_client *client = &kproc->client;
> struct device *dev = kproc->dev;
> - int ret;
>
> client->dev = dev;
> client->tx_done = NULL;
> @@ -173,20 +172,6 @@ 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);
> - return ret;
> - }
> -
> return 0;
> }
> EXPORT_SYMBOL_GPL(k3_rproc_request_mbox);
>
> ---
> base-commit: 6bcdbd62bd56e6d7383f9e06d9d148935b3c9b73
> change-id: 20250805-v1-fix-am62-hmp-suspend-aed6a8de0225
>
> Best regards,
> --
> Hiago De Franco <hiago.franco@...adex.com>
>
Powered by blists - more mailing lists