Re: [PATCH 12/13] mailbox: omap: Reverse FIFO busy check logic

From: Andrew Davis
Date: Mon Apr 01 2024 - 19:48:41 EST


On 4/1/24 6:31 PM, Hari Nagalla wrote:
On 3/25/24 12:20, Andrew Davis wrote:
  static int omap_mbox_chan_send_noirq(struct omap_mbox *mbox, u32 msg)
  {
-    int ret = -EBUSY;
+    if (mbox_fifo_full(mbox))
+        return -EBUSY;
-    if (!mbox_fifo_full(mbox)) {
-        omap_mbox_enable_irq(mbox, IRQ_RX);
-        mbox_fifo_write(mbox, msg);
-        ret = 0;
-        omap_mbox_disable_irq(mbox, IRQ_RX);
+    omap_mbox_enable_irq(mbox, IRQ_RX);
+    mbox_fifo_write(mbox, msg);
+    omap_mbox_disable_irq(mbox, IRQ_RX);
-        /* we must read and ack the interrupt directly from here */
-        mbox_fifo_read(mbox);
-        ack_mbox_irq(mbox, IRQ_RX);
-    }
+    /* we must read and ack the interrupt directly from here */
+    mbox_fifo_read(mbox);
+    ack_mbox_irq(mbox, IRQ_RX);
-    return ret;
+    return 0;
  }
Is n't the interrupt supposed to be IRQ_TX above? i.e TX ready signal?

Hmm, could be, but this patch doesn't actually change anything, only moves code
around for readability. So if we were are ack'ing the wrong interrupt, then it
was wrong before. We should check that and fix it if needed in a follow up patch.

Andrew