On 2020/9/27 14:30, Leon Romanovsky wrote: > On Fri, Sep 25, 2020 at 04:23:34PM +0800, Weihang Li wrote: >> From: Lang Cheng <chenglang@xxxxxxxxxx> >> >> The doorbell needs to store PI information into QPC, so the RoCEE should >> wait for the results of storing, that is, it needs two bus operations to >> complete a doorbell. When ROCEE is in SDI mode, multiple doorbells may be >> interlocked because the RoCEE can only handle bus operations serially. So a >> flag to mark if HIP09 is working in SDI mode is added. When the SDI flag is >> set, the ROCEE will ignore the PI information of the doorbell, continue to >> fetch wqe and verify its validity by it's owner_bit. >> >> Signed-off-by: Lang Cheng <chenglang@xxxxxxxxxx> >> Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx> >> --- >> drivers/infiniband/hw/hns/hns_roce_device.h | 5 ++++- >> drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 28 ++++++++++++++++++++++------ >> drivers/infiniband/hw/hns/hns_roce_qp.c | 3 +++ >> 3 files changed, 29 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h >> index a8183ef..517c127 100644 >> --- a/drivers/infiniband/hw/hns/hns_roce_device.h >> +++ b/drivers/infiniband/hw/hns/hns_roce_device.h >> @@ -137,9 +137,10 @@ enum { >> SERV_TYPE_UD, >> }; >> >> -enum { >> +enum hns_roce_qp_caps { >> HNS_ROCE_QP_CAP_RQ_RECORD_DB = BIT(0), >> HNS_ROCE_QP_CAP_SQ_RECORD_DB = BIT(1), >> + HNS_ROCE_QP_CAP_OWNER_DB = BIT(2), >> }; >> >> enum hns_roce_cq_flags { >> @@ -229,6 +230,8 @@ enum { >> HNS_ROCE_CAP_FLAG_FRMR = BIT(8), >> HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL = BIT(9), >> HNS_ROCE_CAP_FLAG_ATOMIC = BIT(10), >> + HNS_ROCE_CAP_FLAG_SDI_MODE = BIT(14), >> + HNS_ROCE_CAP_FLAG_MAX = BIT(28) > > This enum is not used. > > Thanks > Thank you, the enum is not used in this patch. I will remove it and add it back when needed later. Weihang