Commit 2ce38430 authored by Chengchang Tang's avatar Chengchang Tang Committed by Leon Romanovsky

RDMA/hns: Add max_ah and cq moderation capacities in query_device()

Add max_ah and cq moderation capacities to hns_roce_query_device().

Fixes: 9a443537 ("IB/hns: Add driver files for hns RoCE driver")
Signed-off-by: default avatarChengchang Tang <tangchengchang@huawei.com>
Signed-off-by: default avatarJunxian Huang <huangjunxian6@hisilicon.com>
Link: https://lore.kernel.org/r/20240412091616.370789-4-huangjunxian6@hisilicon.comSigned-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent f4caa864
...@@ -100,6 +100,9 @@ ...@@ -100,6 +100,9 @@
#define CQ_BANKID_SHIFT 2 #define CQ_BANKID_SHIFT 2
#define CQ_BANKID_MASK GENMASK(1, 0) #define CQ_BANKID_MASK GENMASK(1, 0)
#define HNS_ROCE_MAX_CQ_COUNT 0xFFFF
#define HNS_ROCE_MAX_CQ_PERIOD 0xFFFF
enum { enum {
SERV_TYPE_RC, SERV_TYPE_RC,
SERV_TYPE_UC, SERV_TYPE_UC,
......
...@@ -5848,7 +5848,7 @@ static int hns_roce_v2_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period) ...@@ -5848,7 +5848,7 @@ static int hns_roce_v2_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period)
dev_info(hr_dev->dev, dev_info(hr_dev->dev,
"cq_period(%u) reached the upper limit, adjusted to 65.\n", "cq_period(%u) reached the upper limit, adjusted to 65.\n",
cq_period); cq_period);
cq_period = HNS_ROCE_MAX_CQ_PERIOD; cq_period = HNS_ROCE_MAX_CQ_PERIOD_HIP08;
} }
cq_period *= HNS_ROCE_CLOCK_ADJUST; cq_period *= HNS_ROCE_CLOCK_ADJUST;
} }
......
...@@ -1347,7 +1347,7 @@ struct fmea_ram_ecc { ...@@ -1347,7 +1347,7 @@ struct fmea_ram_ecc {
/* only for RNR timeout issue of HIP08 */ /* only for RNR timeout issue of HIP08 */
#define HNS_ROCE_CLOCK_ADJUST 1000 #define HNS_ROCE_CLOCK_ADJUST 1000
#define HNS_ROCE_MAX_CQ_PERIOD 65 #define HNS_ROCE_MAX_CQ_PERIOD_HIP08 65
#define HNS_ROCE_MAX_EQ_PERIOD 65 #define HNS_ROCE_MAX_EQ_PERIOD 65
#define HNS_ROCE_RNR_TIMER_10NS 1 #define HNS_ROCE_RNR_TIMER_10NS 1
#define HNS_ROCE_1US_CFG 999 #define HNS_ROCE_1US_CFG 999
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include "hns_roce_common.h" #include "hns_roce_common.h"
#include "hns_roce_device.h" #include "hns_roce_device.h"
#include "hns_roce_hem.h" #include "hns_roce_hem.h"
#include "hns_roce_hw_v2.h"
static int hns_roce_set_mac(struct hns_roce_dev *hr_dev, u32 port, static int hns_roce_set_mac(struct hns_roce_dev *hr_dev, u32 port,
const u8 *addr) const u8 *addr)
...@@ -192,6 +193,12 @@ static int hns_roce_query_device(struct ib_device *ib_dev, ...@@ -192,6 +193,12 @@ static int hns_roce_query_device(struct ib_device *ib_dev,
IB_ATOMIC_HCA : IB_ATOMIC_NONE; IB_ATOMIC_HCA : IB_ATOMIC_NONE;
props->max_pkeys = 1; props->max_pkeys = 1;
props->local_ca_ack_delay = hr_dev->caps.local_ca_ack_delay; props->local_ca_ack_delay = hr_dev->caps.local_ca_ack_delay;
props->max_ah = INT_MAX;
props->cq_caps.max_cq_moderation_period = HNS_ROCE_MAX_CQ_PERIOD;
props->cq_caps.max_cq_moderation_count = HNS_ROCE_MAX_CQ_COUNT;
if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08)
props->cq_caps.max_cq_moderation_period = HNS_ROCE_MAX_CQ_PERIOD_HIP08;
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ) { if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ) {
props->max_srq = hr_dev->caps.num_srqs; props->max_srq = hr_dev->caps.num_srqs;
props->max_srq_wr = hr_dev->caps.max_srq_wrs; props->max_srq_wr = hr_dev->caps.max_srq_wrs;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment