RDMA/nes: Inform hardware that asynchronous event has been handled
authorDon Wood <donald.e.wood@intel.com>
Fri, 6 Mar 2009 23:12:11 +0000 (15:12 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 6 Mar 2009 23:12:11 +0000 (15:12 -0800)
When asynchronous events are processed by software, it is necessary
to let the hardware know that software has handled the event.  This
frees up the entry in the asynchronous event queue.

Signed-off-by: Don Wood <donald.e.wood@intel.com>
Signed-off-by: Chien Tung <chien.tin.tung@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/nes/nes_hw.c
drivers/infiniband/hw/nes/nes_hw.h

index 3a72a06f1df8bd0366e28d153070c43a62116db3..1c5e946ce226608c75d60cdff2187090557d9e2f 100644 (file)
@@ -2269,6 +2269,8 @@ static void nes_process_aeq(struct nes_device *nesdev, struct nes_hw_aeq *aeq)
 
                if (++head >= aeq_size)
                        head = 0;
+
+               nes_write32(nesdev->regs + NES_AEQ_ALLOC, 1 << 16);
        }
        while (1);
        aeq->aeq_head = head;
index 6f8712d7a2cc0902b7c30dc13a751c39d7caeaba..bf7ecfa5f97694198aace2d17498147c0800828f 100644 (file)
@@ -61,6 +61,7 @@ enum pci_regs {
        NES_CQ_ACK = 0x0034,
        NES_WQE_ALLOC = 0x0040,
        NES_CQE_ALLOC = 0x0044,
+       NES_AEQ_ALLOC = 0x0048
 };
 
 enum indexed_regs {