Skip to content

Commit 0110a1e

Browse files
larrchjgunthorpe
authored andcommitted
RDMA/hns: Remove unsupport cmdq mode
CMDQ support un-interrupt mode only, and firmware ignores this mode flag, so remove it. Fixes: a04ff73 ("RDMA/hns: Add command queue support for hip08 RoCE driver") Link: https://lore.kernel.org/r/1629539607-33217-2-git-send-email-liangwenpeng@huawei.com Signed-off-by: Lang Cheng <chenglang@huawei.com> Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent 3f69f4e commit 0110a1e

2 files changed

Lines changed: 14 additions & 27 deletions

File tree

drivers/infiniband/hw/hns/hns_roce_hw_v2.c

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,8 +1248,7 @@ static void hns_roce_cmq_setup_basic_desc(struct hns_roce_cmq_desc *desc,
12481248
{
12491249
memset((void *)desc, 0, sizeof(struct hns_roce_cmq_desc));
12501250
desc->opcode = cpu_to_le16(opcode);
1251-
desc->flag =
1252-
cpu_to_le16(HNS_ROCE_CMD_FLAG_NO_INTR | HNS_ROCE_CMD_FLAG_IN);
1251+
desc->flag = cpu_to_le16(HNS_ROCE_CMD_FLAG_IN);
12531252
if (is_read)
12541253
desc->flag |= cpu_to_le16(HNS_ROCE_CMD_FLAG_WR);
12551254
else
@@ -1288,16 +1287,11 @@ static int __hns_roce_cmq_send(struct hns_roce_dev *hr_dev,
12881287
/* Write to hardware */
12891288
roce_write(hr_dev, ROCEE_TX_CMQ_PI_REG, csq->head);
12901289

1291-
/* If the command is sync, wait for the firmware to write back,
1292-
* if multi descriptors to be sent, use the first one to check
1293-
*/
1294-
if (le16_to_cpu(desc->flag) & HNS_ROCE_CMD_FLAG_NO_INTR) {
1295-
do {
1296-
if (hns_roce_cmq_csq_done(hr_dev))
1297-
break;
1298-
udelay(1);
1299-
} while (++timeout < priv->cmq.tx_timeout);
1300-
}
1290+
do {
1291+
if (hns_roce_cmq_csq_done(hr_dev))
1292+
break;
1293+
udelay(1);
1294+
} while (++timeout < priv->cmq.tx_timeout);
13011295

13021296
if (hns_roce_cmq_csq_done(hr_dev)) {
13031297
for (ret = 0, i = 0; i < num; i++) {
@@ -1761,8 +1755,7 @@ static int __hns_roce_set_vf_switch_param(struct hns_roce_dev *hr_dev,
17611755
if (ret)
17621756
return ret;
17631757

1764-
desc.flag =
1765-
cpu_to_le16(HNS_ROCE_CMD_FLAG_NO_INTR | HNS_ROCE_CMD_FLAG_IN);
1758+
desc.flag = cpu_to_le16(HNS_ROCE_CMD_FLAG_IN);
17661759
desc.flag &= cpu_to_le16(~HNS_ROCE_CMD_FLAG_WR);
17671760
roce_set_bit(swt->cfg, VF_SWITCH_DATA_CFG_ALW_LPBK_S, 1);
17681761
roce_set_bit(swt->cfg, VF_SWITCH_DATA_CFG_ALW_LCL_LPBK_S, 0);

drivers/infiniband/hw/hns/hns_roce_hw_v2.h

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -129,19 +129,13 @@
129129

130130
#define HNS_ROCE_V2_TABLE_CHUNK_SIZE (1 << 18)
131131

132-
#define HNS_ROCE_CMD_FLAG_IN_VALID_SHIFT 0
133-
#define HNS_ROCE_CMD_FLAG_OUT_VALID_SHIFT 1
134-
#define HNS_ROCE_CMD_FLAG_NEXT_SHIFT 2
135-
#define HNS_ROCE_CMD_FLAG_WR_OR_RD_SHIFT 3
136-
#define HNS_ROCE_CMD_FLAG_NO_INTR_SHIFT 4
137-
#define HNS_ROCE_CMD_FLAG_ERR_INTR_SHIFT 5
138-
139-
#define HNS_ROCE_CMD_FLAG_IN BIT(HNS_ROCE_CMD_FLAG_IN_VALID_SHIFT)
140-
#define HNS_ROCE_CMD_FLAG_OUT BIT(HNS_ROCE_CMD_FLAG_OUT_VALID_SHIFT)
141-
#define HNS_ROCE_CMD_FLAG_NEXT BIT(HNS_ROCE_CMD_FLAG_NEXT_SHIFT)
142-
#define HNS_ROCE_CMD_FLAG_WR BIT(HNS_ROCE_CMD_FLAG_WR_OR_RD_SHIFT)
143-
#define HNS_ROCE_CMD_FLAG_NO_INTR BIT(HNS_ROCE_CMD_FLAG_NO_INTR_SHIFT)
144-
#define HNS_ROCE_CMD_FLAG_ERR_INTR BIT(HNS_ROCE_CMD_FLAG_ERR_INTR_SHIFT)
132+
enum {
133+
HNS_ROCE_CMD_FLAG_IN = BIT(0),
134+
HNS_ROCE_CMD_FLAG_OUT = BIT(1),
135+
HNS_ROCE_CMD_FLAG_NEXT = BIT(2),
136+
HNS_ROCE_CMD_FLAG_WR = BIT(3),
137+
HNS_ROCE_CMD_FLAG_ERR_INTR = BIT(5),
138+
};
145139

146140
#define HNS_ROCE_CMQ_DESC_NUM_S 3
147141

0 commit comments

Comments
 (0)