浏览代码

RDMA/nes: Inform hardware that asynchronous event has been handled

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>
Don Wood 16 年之前
父节点
当前提交
fd87778cb9
共有 2 个文件被更改,包括 3 次插入0 次删除
  1. 2 0
      drivers/infiniband/hw/nes/nes_hw.c
  2. 1 0
      drivers/infiniband/hw/nes/nes_hw.h

+ 2 - 0
drivers/infiniband/hw/nes/nes_hw.c

@@ -2269,6 +2269,8 @@ static void nes_process_aeq(struct nes_device *nesdev, struct nes_hw_aeq *aeq)
 
 
 		if (++head >= aeq_size)
 		if (++head >= aeq_size)
 			head = 0;
 			head = 0;
+
+		nes_write32(nesdev->regs + NES_AEQ_ALLOC, 1 << 16);
 	}
 	}
 	while (1);
 	while (1);
 	aeq->aeq_head = head;
 	aeq->aeq_head = head;

+ 1 - 0
drivers/infiniband/hw/nes/nes_hw.h

@@ -61,6 +61,7 @@ enum pci_regs {
 	NES_CQ_ACK = 0x0034,
 	NES_CQ_ACK = 0x0034,
 	NES_WQE_ALLOC = 0x0040,
 	NES_WQE_ALLOC = 0x0040,
 	NES_CQE_ALLOC = 0x0044,
 	NES_CQE_ALLOC = 0x0044,
+	NES_AEQ_ALLOC = 0x0048
 };
 };
 
 
 enum indexed_regs {
 enum indexed_regs {