2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-23 12:43:55 +08:00
linux-next/drivers/infiniband/hw
Wei Hu (Xavier) 8f3e9f3ea0 IB/hns: Add code for refreshing CQ CI using TPTR
This patch added the code for refreshing CQ CI using TPTR in hip06
SoC.

We will send a doorbell to hardware for refreshing CQ CI when user
succeed to poll a cqe. But it will be failed if the doorbell has
been blocked. So hardware will read a special buffer called TPTR
to get the lastest CI value when the cq is almost full.

This patch support the special CI buffer as follows:
a) Alloc the memory for TPTR in the hns_roce_tptr_init function and
   free it in hns_roce_tptr_free function, these two functions will
   be called in probe function and in the remove function.
b) Add the code for computing offset(every cq need 2 bytes) and
   write the dma addr to every cq context to notice hardware in the
   function named hns_roce_v1_write_cqc.
c) Add code for mapping TPTR buffer to user space in function named
   hns_roce_mmap. The mapping distinguish TPTR and UAR of user mode
   by vm_pgoff(0: UAR, 1: TPTR, others:invaild) in hip06.
d) Alloc the code for refreshing CQ CI using TPTR in the function
   named hns_roce_v1_poll_cq.
e) Add some variable definitions to the related structure.

Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Signed-off-by: Dongdong Huang(Donald) <hdd.huang@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Salil Mehta  <salil.mehta@huawei.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-12-03 14:20:42 -05:00
..
cxgb3 IB/cxgb3: Move user vendor structures 2016-10-07 16:54:35 -04:00
cxgb4 Merge of primary rdma-core code for 4.9 2016-10-09 17:04:33 -07:00
hfi1 Merge of primary rdma-core code for 4.9 2016-10-09 17:04:33 -07:00
hns IB/hns: Add code for refreshing CQ CI using TPTR 2016-12-03 14:20:42 -05:00
i40iw Merge of primary rdma-core code for 4.9 2016-10-09 17:04:33 -07:00
mlx4 Merge of primary rdma-core code for 4.9 2016-10-09 17:04:33 -07:00
mlx5 net/mlx5: Add multi dest support 2016-10-30 15:43:17 +02:00
mthca mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07:00
nes IB/nes: Move user vendor structures 2016-10-07 16:54:37 -04:00
ocrdma Merge of primary rdma-core code for 4.9 2016-10-09 17:04:33 -07:00
qedr qedr: Add events support and register IB device 2016-10-14 15:00:10 -04:00
qib mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07:00
usnic mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07:00
Makefile qedr: Add RoCE driver framework 2016-10-14 15:00:10 -04:00