mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 19:07:52 +00:00
RDMA/hns: Clear extended doorbell info before using
Both of HIP08 and HIP09 require the extended doorbell information to be
cleared before being used.
Fixes: 6b63597d35
("RDMA/hns: Add TSQ link table support")
Link: https://lore.kernel.org/r/1623392089-35639-1-git-send-email-liweihang@huawei.com
Signed-off-by: Xi Wang <wangxi11@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
a95fbe2aba
commit
7e78dd816e
2 changed files with 22 additions and 0 deletions
|
@ -1572,6 +1572,22 @@ static void hns_roce_function_clear(struct hns_roce_dev *hr_dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int hns_roce_clear_extdb_list_info(struct hns_roce_dev *hr_dev)
|
||||||
|
{
|
||||||
|
struct hns_roce_cmq_desc desc;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
hns_roce_cmq_setup_basic_desc(&desc, HNS_ROCE_OPC_CLEAR_EXTDB_LIST_INFO,
|
||||||
|
false);
|
||||||
|
ret = hns_roce_cmq_send(hr_dev, &desc, 1);
|
||||||
|
if (ret)
|
||||||
|
ibdev_err(&hr_dev->ib_dev,
|
||||||
|
"failed to clear extended doorbell info, ret = %d.\n",
|
||||||
|
ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int hns_roce_query_fw_ver(struct hns_roce_dev *hr_dev)
|
static int hns_roce_query_fw_ver(struct hns_roce_dev *hr_dev)
|
||||||
{
|
{
|
||||||
struct hns_roce_query_fw_info *resp;
|
struct hns_roce_query_fw_info *resp;
|
||||||
|
@ -2756,6 +2772,11 @@ static int hns_roce_v2_init(struct hns_roce_dev *hr_dev)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* The hns ROCEE requires the extdb info to be cleared before using */
|
||||||
|
ret = hns_roce_clear_extdb_list_info(hr_dev);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
ret = get_hem_table(hr_dev);
|
ret = get_hem_table(hr_dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -250,6 +250,7 @@ enum hns_roce_opcode_type {
|
||||||
HNS_ROCE_OPC_CLR_SCCC = 0x8509,
|
HNS_ROCE_OPC_CLR_SCCC = 0x8509,
|
||||||
HNS_ROCE_OPC_QUERY_SCCC = 0x850a,
|
HNS_ROCE_OPC_QUERY_SCCC = 0x850a,
|
||||||
HNS_ROCE_OPC_RESET_SCCC = 0x850b,
|
HNS_ROCE_OPC_RESET_SCCC = 0x850b,
|
||||||
|
HNS_ROCE_OPC_CLEAR_EXTDB_LIST_INFO = 0x850d,
|
||||||
HNS_ROCE_OPC_QUERY_VF_RES = 0x850e,
|
HNS_ROCE_OPC_QUERY_VF_RES = 0x850e,
|
||||||
HNS_ROCE_OPC_CFG_GMV_TBL = 0x850f,
|
HNS_ROCE_OPC_CFG_GMV_TBL = 0x850f,
|
||||||
HNS_ROCE_OPC_CFG_GMV_BT = 0x8510,
|
HNS_ROCE_OPC_CFG_GMV_BT = 0x8510,
|
||||||
|
|
Loading…
Reference in a new issue