mailbox: imx: keep MU irq working during suspend/resume
authorAnson Huang <anson.huang@nxp.com>
Tue, 12 Feb 2019 12:40:25 +0000 (12:40 +0000)
committerJassi Brar <jaswinder.singh@linaro.org>
Mon, 11 Mar 2019 07:51:43 +0000 (02:51 -0500)
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 <Anson.Huang@nxp.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
drivers/mailbox/imx-mailbox.c

index 774362a05159a9e6c726dba4d31aff531de80bce..85fc5b56f99b16e77ace3b5c90fd078b6cd28996 100644 (file)
@@ -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);