During noirq suspend phase, mailbox MU irq will be masked
but many drivers still need to communicate with system
controller firmware via mailbox, if MU irq is masked, it
will cause RPC timeout as below:
[ 23.372103] imx-scu scu: RPC send msg timeout
Setting MU irq to be wakeup source is NOT working as GIC
driver does NOT have .irq_set_wake implemented, so to
support suspend/resume, just make imx mailbox driver NOT
suspend, since MU is always a wakeup source on i.MX platforms
with system controller inside, and its power/clock is
maintained by system controller, mailbox driver no need
to manage them.
Signed-off-by: Anson Huang <[email protected]>
---
drivers/mailbox/imx-mailbox.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c
index 774362a..85fc5b5 100644
--- a/drivers/mailbox/imx-mailbox.c
+++ b/drivers/mailbox/imx-mailbox.c
@@ -187,8 +187,8 @@ static int imx_mu_startup(struct mbox_chan *chan)
return 0;
}
- ret = request_irq(priv->irq, imx_mu_isr, IRQF_SHARED, cp->irq_desc,
- chan);
+ ret = request_irq(priv->irq, imx_mu_isr, IRQF_SHARED |
+ IRQF_NO_SUSPEND, cp->irq_desc, chan);
if (ret) {
dev_err(priv->dev,
"Unable to acquire IRQ %d\n", priv->irq);
--
2.7.4
Ping...
Best Regards!
Anson Huang
> -----Original Message-----
> From: Anson Huang [mailto:[email protected]]
> Sent: 2019??2??12?? 20:40
> To: [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]
> Cc: dl-linux-imx <[email protected]>
> Subject: [PATCH] mailbox: imx: keep MU irq working during suspend/resume
>
> During noirq suspend phase, mailbox MU irq will be masked but many
> drivers still need to communicate with system controller firmware via
> mailbox, if MU irq is masked, it will cause RPC timeout as below:
>
> [ 23.372103] imx-scu scu: RPC send msg timeout
>
> Setting MU irq to be wakeup source is NOT working as GIC driver does NOT
> have .irq_set_wake implemented, so to support suspend/resume, just make
> imx mailbox driver NOT suspend, since MU is always a wakeup source on
> i.MX platforms with system controller inside, and its power/clock is
> maintained by system controller, mailbox driver no need to manage them.
>
> Signed-off-by: Anson Huang <[email protected]>
> ---
> drivers/mailbox/imx-mailbox.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c
> index 774362a..85fc5b5 100644
> --- a/drivers/mailbox/imx-mailbox.c
> +++ b/drivers/mailbox/imx-mailbox.c
> @@ -187,8 +187,8 @@ static int imx_mu_startup(struct mbox_chan *chan)
> return 0;
> }
>
> - ret = request_irq(priv->irq, imx_mu_isr, IRQF_SHARED, cp->irq_desc,
> - chan);
> + ret = request_irq(priv->irq, imx_mu_isr, IRQF_SHARED |
> + IRQF_NO_SUSPEND, cp->irq_desc, chan);
> if (ret) {
> dev_err(priv->dev,
> "Unable to acquire IRQ %d\n", priv->irq);
> --
> 2.7.4