[PATCH 1/1] firmware: arm_scmi/mailbox: ignore notification for tx done using irq

joe_zhuchg
2020-05-09T09:21:37Z

From: Joe Zhu <Chunguang.Zhu@verisilicon.com>

If mailbox uses IRQ method, it already notified framework with
mbox_chan_txdone() in ISR.

Signed-off-by: Joe Zhu <Chunguang.Zhu@verisilicon.com>
---
drivers/firmware/arm_scmi/mailbox.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/arm_scmi/mailbox.c b/drivers/firmware/arm_scmi/mailbox.c
index 73077bbc4ad9..303a5dc42429 100644
--- a/drivers/firmware/arm_scmi/mailbox.c
+++ b/drivers/firmware/arm_scmi/mailbox.c
@@ -9,6 +9,7 @@
#include <linux/err.h>
#include <linux/device.h>
#include <linux/mailbox_client.h>
+#include <linux/mailbox_controller.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/slab.h>
@@ -147,7 +148,8 @@ static void mailbox_mark_txdone(struct scmi_chan_info *cinfo, int ret)
* Unfortunately, we have to kick the mailbox framework after we have
* received our message.
*/
- mbox_client_txdone(smbox->chan, ret);
+ if (!smbox->chan->mbox->txdone_irq)
+ mbox_client_txdone(smbox->chan, ret);
}

static void mailbox_fetch_response(struct scmi_chan_info *cinfo,
--
2.17.1