[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1564973491-18286-3-git-send-email-hongxing.zhu@nxp.com>
Date:   Mon,  5 Aug 2019 10:51:29 +0800
From:   Richard Zhu <hongxing.zhu@....com>
To:     jassisinghbrar@...il.com, o.rempel@...gutronix.de,
        daniel.baluta@....com, aisheng.dong@....com
Cc:     linux-imx@....com, linux-kernel@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org,
        Richard Zhu <hongxing.zhu@....com>
Subject: [PATCH v5 2/4] mailbox: imx: Clear the right interrupts at shutdown
Make sure to only clear enabled interrupts keeping count
of the connection type.
Suggested-by: Oleksij Rempel <o.rempel@...gutronix.de>
Signed-off-by: Daniel Baluta <daniel.baluta@....com>
Signed-off-by: Richard Zhu <hongxing.zhu@....com>
---
 drivers/mailbox/imx-mailbox.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c
index 1eeabc5..afe625e 100644
--- a/drivers/mailbox/imx-mailbox.c
+++ b/drivers/mailbox/imx-mailbox.c
@@ -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));
+	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);
 }
-- 
2.7.4
Powered by blists - more mailing lists