mailbox: imx: Clear the right interrupts at shutdown
authorDaniel Baluta <daniel.baluta@nxp.com>
Wed, 9 Oct 2019 08:07:19 +0000 (16:07 +0800)
committerJassi Brar <jaswinder.singh@linaro.org>
Sun, 1 Dec 2019 05:09:10 +0000 (23:09 -0600)
Make sure to only clear enabled interrupts keeping count
of the connection type.

Suggested-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
drivers/mailbox/imx-mailbox.c

index 957c10c4e674a36e2b8a59de8aeda60cbed095b1..afe625e88a5c54e300d89a51eee7990218369086 100644 (file)
@@ -219,8 +219,19 @@ static void imx_mu_shutdown(struct mbox_chan *chan)
                return;
        }
 
-       imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_TIEn(cp->idx) |
-                      IMX_MU_xCR_RIEn(cp->idx) | IMX_MU_xCR_GIEn(cp->idx));
+       switch (cp->type) {
+       case IMX_MU_TYPE_TX:
+               imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_TIEn(cp->idx));
+               break;
+       case IMX_MU_TYPE_RX:
+               imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_RIEn(cp->idx));
+               break;
+       case IMX_MU_TYPE_RXDB:
+               imx_mu_xcr_rmw(priv, 0, IMX_MU_xCR_GIEn(cp->idx));
+               break;
+       default:
+               break;
+       }
 
        free_irq(priv->irq, chan);
 }