Only write a new message to the tx mbox queue if slot is available in
the tx queue. If queue is full, then do not send new mbox notification.

Signed-off-by: Tanmay Shah <[email protected]>
---

Depends on: 
https://lore.kernel.org/linux-remoteproc/[email protected]/T/#u

 drivers/remoteproc/xlnx_r5_remoteproc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c 
b/drivers/remoteproc/xlnx_r5_remoteproc.c
index bd619a6c42aa..622de733c929 100644
--- a/drivers/remoteproc/xlnx_r5_remoteproc.c
+++ b/drivers/remoteproc/xlnx_r5_remoteproc.c
@@ -332,7 +332,10 @@ static void zynqmp_r5_rproc_kick(struct rproc *rproc, int 
vqid)
        int ret;
 
        ipi = r5_core->ipi;
-       if (!ipi)
+       if (!ipi || !ipi->tx_chan)
+               return;
+
+       if (mbox_chan_tx_slots_available(ipi->tx_chan) == 0)
                return;
 
        mb_msg = (struct zynqmp_ipi_message *)ipi->tx_mc_buf;

base-commit: 462799c088e71b2b8a511c2a9649420fcb569ab7
-- 
2.34.1


Reply via email to