From: Joe Zhu <[email protected]> If mailbox uses IRQ method, it already notified framework with mbox_chan_txdone() in ISR.
Signed-off-by: Joe Zhu <[email protected]> --- 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

