Commit 6928d264 authored by Junxian Huang's avatar Junxian Huang Committed by Leon Romanovsky
Browse files

RDMA/hns: Don't modify rq next block addr in HIP09 QPC



The field 'rq next block addr' in QPC can be updated by driver only
on HIP08. On HIP09 HW updates this field while driver is not allowed.

Fixes: 926a01dc ("RDMA/hns: Add QP operations support for hip08 SoC")
Signed-off-by: default avatarJunxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20240906093444.3571619-2-huangjunxian6@hisilicon.com


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent 227f5174
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -4423,12 +4423,14 @@ static int config_qp_rq_buf(struct hns_roce_dev *hr_dev,
		     upper_32_bits(to_hr_hw_page_addr(mtts[0])));
	hr_reg_clear(qpc_mask, QPC_RQ_CUR_BLK_ADDR_H);

	context->rq_nxt_blk_addr = cpu_to_le32(to_hr_hw_page_addr(mtts[1]));
	if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08) {
		context->rq_nxt_blk_addr =
				cpu_to_le32(to_hr_hw_page_addr(mtts[1]));
		qpc_mask->rq_nxt_blk_addr = 0;

		hr_reg_write(context, QPC_RQ_NXT_BLK_ADDR_H,
			     upper_32_bits(to_hr_hw_page_addr(mtts[1])));
		hr_reg_clear(qpc_mask, QPC_RQ_NXT_BLK_ADDR_H);
	}

	return 0;
}