[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK4ZnzmKOFYcC8YhZ47DgAp3oDhZmwhQ211u76-UaPYFmz_F+Q@mail.gmail.com>
Date: Wed, 22 Oct 2025 10:45:31 -0300
From: Hiago De Franco <hiagofranco@...il.com>
To: Beleswar Padhi <b-padhi@...com>
Cc: jassisinghbrar@...il.com, linux-kernel@...r.kernel.org, afd@...com,
hnagalla@...com, u-kumar1@...com, Hiago De Franco <hiago.franco@...adex.com>
Subject: Re: [RFC PATCH] mailbox: omap-mailbox: Flush out pending msgs before
entering suspend
On 22.10.2025 15:50, Beleswar Padhi wrote:
> There may be pending messages in the mailbox FIFO that are not consumed
> by the remote processor for various reasons; the remote processor may
> already be powered off or may be in a bad state. Instead of aborting
> suspend because of these pending messages, flush the FIFOs and proceed
> with suspend. Pending messages could also be restored in the resume
> context, but since remote processors are typically rebooted during
> suspend/resume today, there is no point in restoring stale messages.
>
> Signed-off-by: Beleswar Padhi <b-padhi@...com>
Thanks for your patch, I tested it on Verdin AM62 and it is working
fine.
Please add the following tags:
Closes: https://lore.kernel.org/all/sid7gtg5vay5qgicsl6smnzwg5mnneoa35cempt5ddwjvedaio@hzsgcx6oo74l/
Fixes: 1d6161617c10 ("arm64: dts: ti: k3-am62-ti-ipc-firmware:
Refactor IPC cfg into new dtsi")
With that,
Tested-by: Hiago De Franco <hiago.franco@...adex.com> # Verdin AM62
Best regards,
Hiago.
> ---
> drivers/mailbox/omap-mailbox.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
> index 680243751d62..5e6373911630 100644
> --- a/drivers/mailbox/omap-mailbox.c
> +++ b/drivers/mailbox/omap-mailbox.c
> @@ -341,13 +341,10 @@ static int omap_mbox_suspend(struct device *dev)
> if (pm_runtime_status_suspended(dev))
> return 0;
>
> - for (fifo = 0; fifo < mdev->num_fifos; fifo++) {
> - if (mbox_read_reg(mdev, MAILBOX_MSGSTATUS(fifo))) {
> - dev_err(mdev->dev, "fifo %d has unexpected unread messages\n",
> - fifo);
> - return -EBUSY;
> - }
> - }
> + /* Flush out pending mbox messages before entering suspend */
> + for (fifo = 0; fifo < mdev->num_fifos; fifo++)
> + while (mbox_read_reg(mdev, MAILBOX_MSGSTATUS(fifo)) != 0)
> + mbox_read_reg(mdev, MAILBOX_MESSAGE(fifo));
>
> for (usr = 0; usr < mdev->num_users; usr++) {
> reg = MAILBOX_IRQENABLE(mdev->intr_type, usr);
> --
> 2.34.1
>
On Wed, Oct 22, 2025 at 7:20 AM Beleswar Padhi <b-padhi@...com> wrote:
>
> There may be pending messages in the mailbox FIFO that are not consumed
> by the remote processor for various reasons; the remote processor may
> already be powered off or may be in a bad state. Instead of aborting
> suspend because of these pending messages, flush the FIFOs and proceed
> with suspend. Pending messages could also be restored in the resume
> context, but since remote processors are typically rebooted during
> suspend/resume today, there is no point in restoring stale messages.
>
> Signed-off-by: Beleswar Padhi <b-padhi@...com>
> ---
> drivers/mailbox/omap-mailbox.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
> index 680243751d62..5e6373911630 100644
> --- a/drivers/mailbox/omap-mailbox.c
> +++ b/drivers/mailbox/omap-mailbox.c
> @@ -341,13 +341,10 @@ static int omap_mbox_suspend(struct device *dev)
> if (pm_runtime_status_suspended(dev))
> return 0;
>
> - for (fifo = 0; fifo < mdev->num_fifos; fifo++) {
> - if (mbox_read_reg(mdev, MAILBOX_MSGSTATUS(fifo))) {
> - dev_err(mdev->dev, "fifo %d has unexpected unread messages\n",
> - fifo);
> - return -EBUSY;
> - }
> - }
> + /* Flush out pending mbox messages before entering suspend */
> + for (fifo = 0; fifo < mdev->num_fifos; fifo++)
> + while (mbox_read_reg(mdev, MAILBOX_MSGSTATUS(fifo)) != 0)
> + mbox_read_reg(mdev, MAILBOX_MESSAGE(fifo));
>
> for (usr = 0; usr < mdev->num_users; usr++) {
> reg = MAILBOX_IRQENABLE(mdev->intr_type, usr);
> --
> 2.34.1
>
Powered by blists - more mailing lists