8f3e9f3ea0
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> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
hns_roce_ah.c | ||
hns_roce_alloc.c | ||
hns_roce_cmd.c | ||
hns_roce_cmd.h | ||
hns_roce_common.h | ||
hns_roce_cq.c | ||
hns_roce_device.h | ||
hns_roce_eq.c | ||
hns_roce_eq.h | ||
hns_roce_hem.c | ||
hns_roce_hem.h | ||
hns_roce_hw_v1.c | ||
hns_roce_hw_v1.h | ||
hns_roce_main.c | ||
hns_roce_mr.c | ||
hns_roce_pd.c | ||
hns_roce_qp.c | ||
hns_roce_user.h |