Lines Matching full:caps
1649 hr_dev->caps.fw_ver = (u64)(le32_to_cpu(resp->fw_ver)); in hns_roce_query_fw_ver()
1689 if (port > hr_dev->caps.num_ports) in hns_roce_hw_v2_query_counter()
1753 struct hns_roce_caps *caps = &hr_dev->caps; in load_func_res_caps() local
1774 caps->qpc_bt_num = hr_reg_read(r_a, FUNC_RES_A_QPC_BT_NUM) / func_num; in load_func_res_caps()
1775 caps->srqc_bt_num = hr_reg_read(r_a, FUNC_RES_A_SRQC_BT_NUM) / func_num; in load_func_res_caps()
1776 caps->cqc_bt_num = hr_reg_read(r_a, FUNC_RES_A_CQC_BT_NUM) / func_num; in load_func_res_caps()
1777 caps->mpt_bt_num = hr_reg_read(r_a, FUNC_RES_A_MPT_BT_NUM) / func_num; in load_func_res_caps()
1778 caps->eqc_bt_num = hr_reg_read(r_a, FUNC_RES_A_EQC_BT_NUM) / func_num; in load_func_res_caps()
1779 caps->smac_bt_num = hr_reg_read(r_b, FUNC_RES_B_SMAC_NUM) / func_num; in load_func_res_caps()
1780 caps->sgid_bt_num = hr_reg_read(r_b, FUNC_RES_B_SGID_NUM) / func_num; in load_func_res_caps()
1781 caps->sccc_bt_num = hr_reg_read(r_b, FUNC_RES_B_SCCC_BT_NUM) / func_num; in load_func_res_caps()
1784 caps->sl_num = hr_reg_read(r_b, FUNC_RES_V_QID_NUM) / func_num; in load_func_res_caps()
1785 caps->gmv_bt_num = hr_reg_read(r_b, FUNC_RES_V_GMV_BT_NUM) / in load_func_res_caps()
1788 caps->sl_num = hr_reg_read(r_b, FUNC_RES_B_QID_NUM) / func_num; in load_func_res_caps()
1789 caps->gmv_bt_num = hr_reg_read(r_b, FUNC_RES_B_GMV_BT_NUM) / in load_func_res_caps()
1800 struct hns_roce_caps *caps = &hr_dev->caps; in load_pf_timer_res_caps() local
1810 caps->qpc_timer_bt_num = hr_reg_read(req, PF_TIMER_RES_QPC_ITEM_NUM); in load_pf_timer_res_caps()
1811 caps->cqc_timer_bt_num = hr_reg_read(req, PF_TIMER_RES_CQC_ITEM_NUM); in load_pf_timer_res_caps()
1823 dev_err(dev, "failed to load pf res caps, ret = %d.\n", ret); in hns_roce_query_pf_resource()
1842 dev_err(dev, "failed to load vf res caps, ret = %d.\n", ret); in hns_roce_query_vf_resource()
1890 struct hns_roce_caps *caps = &hr_dev->caps; in config_vf_hem_resource() local
1898 hr_reg_write(r_a, FUNC_RES_A_QPC_BT_NUM, caps->qpc_bt_num); in config_vf_hem_resource()
1899 hr_reg_write(r_a, FUNC_RES_A_QPC_BT_IDX, vf_id * caps->qpc_bt_num); in config_vf_hem_resource()
1900 hr_reg_write(r_a, FUNC_RES_A_SRQC_BT_NUM, caps->srqc_bt_num); in config_vf_hem_resource()
1901 hr_reg_write(r_a, FUNC_RES_A_SRQC_BT_IDX, vf_id * caps->srqc_bt_num); in config_vf_hem_resource()
1902 hr_reg_write(r_a, FUNC_RES_A_CQC_BT_NUM, caps->cqc_bt_num); in config_vf_hem_resource()
1903 hr_reg_write(r_a, FUNC_RES_A_CQC_BT_IDX, vf_id * caps->cqc_bt_num); in config_vf_hem_resource()
1904 hr_reg_write(r_a, FUNC_RES_A_MPT_BT_NUM, caps->mpt_bt_num); in config_vf_hem_resource()
1905 hr_reg_write(r_a, FUNC_RES_A_MPT_BT_IDX, vf_id * caps->mpt_bt_num); in config_vf_hem_resource()
1906 hr_reg_write(r_a, FUNC_RES_A_EQC_BT_NUM, caps->eqc_bt_num); in config_vf_hem_resource()
1907 hr_reg_write(r_a, FUNC_RES_A_EQC_BT_IDX, vf_id * caps->eqc_bt_num); in config_vf_hem_resource()
1908 hr_reg_write(r_b, FUNC_RES_V_QID_NUM, caps->sl_num); in config_vf_hem_resource()
1909 hr_reg_write(r_b, FUNC_RES_B_QID_IDX, vf_id * caps->sl_num); in config_vf_hem_resource()
1910 hr_reg_write(r_b, FUNC_RES_B_SCCC_BT_NUM, caps->sccc_bt_num); in config_vf_hem_resource()
1911 hr_reg_write(r_b, FUNC_RES_B_SCCC_BT_IDX, vf_id * caps->sccc_bt_num); in config_vf_hem_resource()
1914 hr_reg_write(r_b, FUNC_RES_V_GMV_BT_NUM, caps->gmv_bt_num); in config_vf_hem_resource()
1916 vf_id * caps->gmv_bt_num); in config_vf_hem_resource()
1918 hr_reg_write(r_b, FUNC_RES_B_SGID_NUM, caps->sgid_bt_num); in config_vf_hem_resource()
1920 vf_id * caps->sgid_bt_num); in config_vf_hem_resource()
1921 hr_reg_write(r_b, FUNC_RES_B_SMAC_NUM, caps->smac_bt_num); in config_vf_hem_resource()
1923 vf_id * caps->smac_bt_num); in config_vf_hem_resource()
1952 struct hns_roce_caps *caps = &hr_dev->caps; in hns_roce_v2_set_bt() local
1957 caps->qpc_ba_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1959 caps->qpc_buf_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1961 to_hr_hem_hopnum(caps->qpc_hop_num, caps->num_qps)); in hns_roce_v2_set_bt()
1964 caps->srqc_ba_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1966 caps->srqc_buf_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1968 to_hr_hem_hopnum(caps->srqc_hop_num, caps->num_srqs)); in hns_roce_v2_set_bt()
1971 caps->cqc_ba_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1973 caps->cqc_buf_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1975 to_hr_hem_hopnum(caps->cqc_hop_num, caps->num_cqs)); in hns_roce_v2_set_bt()
1978 caps->mpt_ba_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1980 caps->mpt_buf_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1982 to_hr_hem_hopnum(caps->mpt_hop_num, caps->num_mtpts)); in hns_roce_v2_set_bt()
1985 caps->sccc_ba_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1987 caps->sccc_buf_pg_sz + PG_SHIFT_OFFSET); in hns_roce_v2_set_bt()
1989 to_hr_hem_hopnum(caps->sccc_hop_num, caps->num_qps)); in hns_roce_v2_set_bt()
2038 struct hns_roce_caps *caps = &hr_dev->caps; in set_hem_page_size() local
2041 caps->eqe_ba_pg_sz = 0; in set_hem_page_size()
2042 caps->eqe_buf_pg_sz = 0; in set_hem_page_size()
2045 caps->llm_buf_pg_sz = 0; in set_hem_page_size()
2048 caps->mpt_ba_pg_sz = 0; in set_hem_page_size()
2049 caps->mpt_buf_pg_sz = 0; in set_hem_page_size()
2050 caps->pbl_ba_pg_sz = HNS_ROCE_BA_PG_SZ_SUPPORTED_16K; in set_hem_page_size()
2051 caps->pbl_buf_pg_sz = 0; in set_hem_page_size()
2052 calc_pg_sz(caps->num_mtpts, caps->mtpt_entry_sz, caps->mpt_hop_num, in set_hem_page_size()
2053 caps->mpt_bt_num, &caps->mpt_buf_pg_sz, &caps->mpt_ba_pg_sz, in set_hem_page_size()
2057 caps->qpc_ba_pg_sz = 0; in set_hem_page_size()
2058 caps->qpc_buf_pg_sz = 0; in set_hem_page_size()
2059 caps->qpc_timer_ba_pg_sz = 0; in set_hem_page_size()
2060 caps->qpc_timer_buf_pg_sz = 0; in set_hem_page_size()
2061 caps->sccc_ba_pg_sz = 0; in set_hem_page_size()
2062 caps->sccc_buf_pg_sz = 0; in set_hem_page_size()
2063 caps->mtt_ba_pg_sz = 0; in set_hem_page_size()
2064 caps->mtt_buf_pg_sz = 0; in set_hem_page_size()
2065 calc_pg_sz(caps->num_qps, caps->qpc_sz, caps->qpc_hop_num, in set_hem_page_size()
2066 caps->qpc_bt_num, &caps->qpc_buf_pg_sz, &caps->qpc_ba_pg_sz, in set_hem_page_size()
2069 if (caps->flags & HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL) in set_hem_page_size()
2070 calc_pg_sz(caps->num_qps, caps->sccc_sz, caps->sccc_hop_num, in set_hem_page_size()
2071 caps->sccc_bt_num, &caps->sccc_buf_pg_sz, in set_hem_page_size()
2072 &caps->sccc_ba_pg_sz, HEM_TYPE_SCCC); in set_hem_page_size()
2075 caps->cqc_ba_pg_sz = 0; in set_hem_page_size()
2076 caps->cqc_buf_pg_sz = 0; in set_hem_page_size()
2077 caps->cqc_timer_ba_pg_sz = 0; in set_hem_page_size()
2078 caps->cqc_timer_buf_pg_sz = 0; in set_hem_page_size()
2079 caps->cqe_ba_pg_sz = HNS_ROCE_BA_PG_SZ_SUPPORTED_256K; in set_hem_page_size()
2080 caps->cqe_buf_pg_sz = 0; in set_hem_page_size()
2081 calc_pg_sz(caps->num_cqs, caps->cqc_entry_sz, caps->cqc_hop_num, in set_hem_page_size()
2082 caps->cqc_bt_num, &caps->cqc_buf_pg_sz, &caps->cqc_ba_pg_sz, in set_hem_page_size()
2084 calc_pg_sz(caps->max_cqes, caps->cqe_sz, caps->cqe_hop_num, in set_hem_page_size()
2085 1, &caps->cqe_buf_pg_sz, &caps->cqe_ba_pg_sz, HEM_TYPE_CQE); in set_hem_page_size()
2088 if (caps->flags & HNS_ROCE_CAP_FLAG_SRQ) { in set_hem_page_size()
2089 caps->srqc_ba_pg_sz = 0; in set_hem_page_size()
2090 caps->srqc_buf_pg_sz = 0; in set_hem_page_size()
2091 caps->srqwqe_ba_pg_sz = 0; in set_hem_page_size()
2092 caps->srqwqe_buf_pg_sz = 0; in set_hem_page_size()
2093 caps->idx_ba_pg_sz = 0; in set_hem_page_size()
2094 caps->idx_buf_pg_sz = 0; in set_hem_page_size()
2095 calc_pg_sz(caps->num_srqs, caps->srqc_entry_sz, in set_hem_page_size()
2096 caps->srqc_hop_num, caps->srqc_bt_num, in set_hem_page_size()
2097 &caps->srqc_buf_pg_sz, &caps->srqc_ba_pg_sz, in set_hem_page_size()
2099 calc_pg_sz(caps->num_srqwqe_segs, caps->mtt_entry_sz, in set_hem_page_size()
2100 caps->srqwqe_hop_num, 1, &caps->srqwqe_buf_pg_sz, in set_hem_page_size()
2101 &caps->srqwqe_ba_pg_sz, HEM_TYPE_SRQWQE); in set_hem_page_size()
2102 calc_pg_sz(caps->num_idx_segs, caps->idx_entry_sz, in set_hem_page_size()
2103 caps->idx_hop_num, 1, &caps->idx_buf_pg_sz, in set_hem_page_size()
2104 &caps->idx_ba_pg_sz, HEM_TYPE_IDX); in set_hem_page_size()
2108 caps->gmv_ba_pg_sz = 0; in set_hem_page_size()
2109 caps->gmv_buf_pg_sz = 0; in set_hem_page_size()
2112 /* Apply all loaded caps before setting to hardware */
2116 struct hns_roce_caps *caps = &hr_dev->caps; in apply_func_caps() local
2120 caps->qpc_timer_entry_sz = HNS_ROCE_V2_QPC_TIMER_ENTRY_SZ; in apply_func_caps()
2121 caps->cqc_timer_entry_sz = HNS_ROCE_V2_CQC_TIMER_ENTRY_SZ; in apply_func_caps()
2122 caps->mtt_entry_sz = HNS_ROCE_V2_MTT_ENTRY_SZ; in apply_func_caps()
2124 caps->pbl_hop_num = HNS_ROCE_PBL_HOP_NUM; in apply_func_caps()
2125 caps->qpc_timer_hop_num = HNS_ROCE_HOP_NUM_0; in apply_func_caps()
2126 caps->cqc_timer_hop_num = HNS_ROCE_HOP_NUM_0; in apply_func_caps()
2128 caps->num_srqwqe_segs = HNS_ROCE_V2_MAX_SRQWQE_SEGS; in apply_func_caps()
2129 caps->num_idx_segs = HNS_ROCE_V2_MAX_IDX_SEGS; in apply_func_caps()
2131 if (!caps->num_comp_vectors) in apply_func_caps()
2132 caps->num_comp_vectors = in apply_func_caps()
2133 min_t(u32, caps->eqc_bt_num - HNS_ROCE_V2_AEQE_VEC_NUM, in apply_func_caps()
2138 caps->eqe_hop_num = HNS_ROCE_V3_EQE_HOP_NUM; in apply_func_caps()
2139 caps->ceqe_size = HNS_ROCE_V3_EQE_SIZE; in apply_func_caps()
2140 caps->aeqe_size = HNS_ROCE_V3_EQE_SIZE; in apply_func_caps()
2143 caps->qpc_sz = HNS_ROCE_V3_QPC_SZ; in apply_func_caps()
2144 caps->cqe_sz = HNS_ROCE_V3_CQE_SIZE; in apply_func_caps()
2145 caps->sccc_sz = HNS_ROCE_V3_SCCC_SZ; in apply_func_caps()
2148 caps->gmv_entry_sz = HNS_ROCE_V3_GMV_ENTRY_SZ; in apply_func_caps()
2150 caps->gmv_hop_num = HNS_ROCE_HOP_NUM_0; in apply_func_caps()
2156 caps->gid_table_len[0] = min_t(u32, MAX_GID_TBL_LEN, in apply_func_caps()
2157 caps->gmv_bt_num * in apply_func_caps()
2158 (HNS_HW_PAGE_SIZE / caps->gmv_entry_sz)); in apply_func_caps()
2160 caps->gmv_entry_num = caps->gmv_bt_num * (HNS_HW_PAGE_SIZE / in apply_func_caps()
2161 caps->gmv_entry_sz); in apply_func_caps()
2165 caps->eqe_hop_num = HNS_ROCE_V2_EQE_HOP_NUM; in apply_func_caps()
2166 caps->ceqe_size = HNS_ROCE_CEQE_SIZE; in apply_func_caps()
2167 caps->aeqe_size = HNS_ROCE_AEQE_SIZE; in apply_func_caps()
2168 caps->gid_table_len[0] /= func_num; in apply_func_caps()
2172 caps->default_aeq_arm_st = 0x3; in apply_func_caps()
2173 caps->default_ceq_arm_st = 0x3; in apply_func_caps()
2174 caps->default_ceq_max_cnt = 0x1; in apply_func_caps()
2175 caps->default_ceq_period = 0x10; in apply_func_caps()
2176 caps->default_aeq_max_cnt = 0x1; in apply_func_caps()
2177 caps->default_aeq_period = 0x10; in apply_func_caps()
2186 struct hns_roce_caps *caps = &hr_dev->caps; in hns_roce_query_caps() local
2219 caps->local_ca_ack_delay = resp_a->local_ca_ack_delay; in hns_roce_query_caps()
2220 caps->max_sq_sg = le16_to_cpu(resp_a->max_sq_sg); in hns_roce_query_caps()
2221 caps->max_sq_inline = le16_to_cpu(resp_a->max_sq_inline); in hns_roce_query_caps()
2222 caps->max_rq_sg = le16_to_cpu(resp_a->max_rq_sg); in hns_roce_query_caps()
2223 caps->max_rq_sg = roundup_pow_of_two(caps->max_rq_sg); in hns_roce_query_caps()
2224 caps->max_srq_sges = le16_to_cpu(resp_a->max_srq_sges); in hns_roce_query_caps()
2225 caps->max_srq_sges = roundup_pow_of_two(caps->max_srq_sges); in hns_roce_query_caps()
2226 caps->num_aeq_vectors = resp_a->num_aeq_vectors; in hns_roce_query_caps()
2227 caps->num_other_vectors = resp_a->num_other_vectors; in hns_roce_query_caps()
2228 caps->max_sq_desc_sz = resp_a->max_sq_desc_sz; in hns_roce_query_caps()
2229 caps->max_rq_desc_sz = resp_a->max_rq_desc_sz; in hns_roce_query_caps()
2231 caps->mtpt_entry_sz = resp_b->mtpt_entry_sz; in hns_roce_query_caps()
2232 caps->irrl_entry_sz = resp_b->irrl_entry_sz; in hns_roce_query_caps()
2233 caps->trrl_entry_sz = resp_b->trrl_entry_sz; in hns_roce_query_caps()
2234 caps->cqc_entry_sz = resp_b->cqc_entry_sz; in hns_roce_query_caps()
2235 caps->srqc_entry_sz = resp_b->srqc_entry_sz; in hns_roce_query_caps()
2236 caps->idx_entry_sz = resp_b->idx_entry_sz; in hns_roce_query_caps()
2237 caps->sccc_sz = resp_b->sccc_sz; in hns_roce_query_caps()
2238 caps->max_mtu = resp_b->max_mtu; in hns_roce_query_caps()
2239 caps->min_cqes = resp_b->min_cqes; in hns_roce_query_caps()
2240 caps->min_wqes = resp_b->min_wqes; in hns_roce_query_caps()
2241 caps->page_size_cap = le32_to_cpu(resp_b->page_size_cap); in hns_roce_query_caps()
2242 caps->pkey_table_len[0] = resp_b->pkey_table_len; in hns_roce_query_caps()
2243 caps->phy_num_uars = resp_b->phy_num_uars; in hns_roce_query_caps()
2247 caps->num_pds = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_PDS); in hns_roce_query_caps()
2249 caps->flags = hr_reg_read(resp_c, PF_CAPS_C_CAP_FLAGS); in hns_roce_query_caps()
2250 caps->flags |= le16_to_cpu(resp_d->cap_flags_ex) << in hns_roce_query_caps()
2253 caps->num_cqs = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_CQS); in hns_roce_query_caps()
2254 caps->gid_table_len[0] = hr_reg_read(resp_c, PF_CAPS_C_MAX_GID); in hns_roce_query_caps()
2255 caps->max_cqes = 1 << hr_reg_read(resp_c, PF_CAPS_C_CQ_DEPTH); in hns_roce_query_caps()
2256 caps->num_xrcds = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_XRCDS); in hns_roce_query_caps()
2257 caps->num_mtpts = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_MRWS); in hns_roce_query_caps()
2258 caps->num_qps = 1 << hr_reg_read(resp_c, PF_CAPS_C_NUM_QPS); in hns_roce_query_caps()
2259 caps->max_qp_init_rdma = hr_reg_read(resp_c, PF_CAPS_C_MAX_ORD); in hns_roce_query_caps()
2260 caps->max_qp_dest_rdma = caps->max_qp_init_rdma; in hns_roce_query_caps()
2261 caps->max_wqes = 1 << le16_to_cpu(resp_c->sq_depth); in hns_roce_query_caps()
2263 caps->num_srqs = 1 << hr_reg_read(resp_d, PF_CAPS_D_NUM_SRQS); in hns_roce_query_caps()
2264 caps->cong_cap = hr_reg_read(resp_d, PF_CAPS_D_CONG_CAP); in hns_roce_query_caps()
2265 caps->max_srq_wrs = 1 << le16_to_cpu(resp_d->srq_depth); in hns_roce_query_caps()
2266 caps->ceqe_depth = 1 << hr_reg_read(resp_d, PF_CAPS_D_CEQ_DEPTH); in hns_roce_query_caps()
2267 caps->num_comp_vectors = hr_reg_read(resp_d, PF_CAPS_D_NUM_CEQS); in hns_roce_query_caps()
2268 caps->aeqe_depth = 1 << hr_reg_read(resp_d, PF_CAPS_D_AEQ_DEPTH); in hns_roce_query_caps()
2269 caps->default_cong_type = hr_reg_read(resp_d, PF_CAPS_D_DEFAULT_ALG); in hns_roce_query_caps()
2270 caps->reserved_pds = hr_reg_read(resp_d, PF_CAPS_D_RSV_PDS); in hns_roce_query_caps()
2271 caps->num_uars = 1 << hr_reg_read(resp_d, PF_CAPS_D_NUM_UARS); in hns_roce_query_caps()
2272 caps->reserved_qps = hr_reg_read(resp_d, PF_CAPS_D_RSV_QPS); in hns_roce_query_caps()
2273 caps->reserved_uars = hr_reg_read(resp_d, PF_CAPS_D_RSV_UARS); in hns_roce_query_caps()
2275 caps->reserved_mrws = hr_reg_read(resp_e, PF_CAPS_E_RSV_MRWS); in hns_roce_query_caps()
2276 caps->chunk_sz = 1 << hr_reg_read(resp_e, PF_CAPS_E_CHUNK_SIZE_SHIFT); in hns_roce_query_caps()
2277 caps->reserved_cqs = hr_reg_read(resp_e, PF_CAPS_E_RSV_CQS); in hns_roce_query_caps()
2278 caps->reserved_xrcds = hr_reg_read(resp_e, PF_CAPS_E_RSV_XRCDS); in hns_roce_query_caps()
2279 caps->reserved_srqs = hr_reg_read(resp_e, PF_CAPS_E_RSV_SRQS); in hns_roce_query_caps()
2280 caps->reserved_lkey = hr_reg_read(resp_e, PF_CAPS_E_RSV_LKEYS); in hns_roce_query_caps()
2282 caps->qpc_hop_num = ctx_hop_num; in hns_roce_query_caps()
2283 caps->sccc_hop_num = ctx_hop_num; in hns_roce_query_caps()
2284 caps->srqc_hop_num = ctx_hop_num; in hns_roce_query_caps()
2285 caps->cqc_hop_num = ctx_hop_num; in hns_roce_query_caps()
2286 caps->mpt_hop_num = ctx_hop_num; in hns_roce_query_caps()
2287 caps->mtt_hop_num = pbl_hop_num; in hns_roce_query_caps()
2288 caps->cqe_hop_num = pbl_hop_num; in hns_roce_query_caps()
2289 caps->srqwqe_hop_num = pbl_hop_num; in hns_roce_query_caps()
2290 caps->idx_hop_num = pbl_hop_num; in hns_roce_query_caps()
2291 caps->wqe_sq_hop_num = hr_reg_read(resp_d, PF_CAPS_D_SQWQE_HOP_NUM); in hns_roce_query_caps()
2292 caps->wqe_sge_hop_num = hr_reg_read(resp_d, PF_CAPS_D_EX_SGE_HOP_NUM); in hns_roce_query_caps()
2293 caps->wqe_rq_hop_num = hr_reg_read(resp_d, PF_CAPS_D_RQWQE_HOP_NUM); in hns_roce_query_caps()
2295 if (!(caps->page_size_cap & PAGE_SIZE)) in hns_roce_query_caps()
2296 caps->page_size_cap = HNS_ROCE_V2_PAGE_SIZE_SUPPORTED; in hns_roce_query_caps()
2299 caps->cqe_sz = resp_a->cqe_sz; in hns_roce_query_caps()
2300 caps->qpc_sz = le16_to_cpu(resp_b->qpc_sz); in hns_roce_query_caps()
2301 caps->default_aeq_arm_st = in hns_roce_query_caps()
2303 caps->default_ceq_arm_st = in hns_roce_query_caps()
2305 caps->default_ceq_max_cnt = le16_to_cpu(resp_e->ceq_max_cnt); in hns_roce_query_caps()
2306 caps->default_ceq_period = le16_to_cpu(resp_e->ceq_period); in hns_roce_query_caps()
2307 caps->default_aeq_max_cnt = le16_to_cpu(resp_e->aeq_max_cnt); in hns_roce_query_caps()
2308 caps->default_aeq_period = le16_to_cpu(resp_e->aeq_period); in hns_roce_query_caps()
2330 struct hns_roce_caps *caps = &hr_dev->caps; in hns_roce_config_entry_size() local
2337 caps->qpc_sz); in hns_roce_config_entry_size()
2344 caps->sccc_sz); in hns_roce_config_entry_size()
2360 dev_err(dev, "failed to query VF caps, ret = %d.\n", ret); in hns_roce_v2_vf_profile()
2404 dev_err(dev, "failed to query PF caps, ret = %d.\n", ret); in hns_roce_v2_pf_profile()
2516 u16 total_sl = hr_dev->caps.sl_num * hr_dev->func_num; in alloc_link_table_buf()
2522 pg_shift = hr_dev->caps.llm_buf_pg_sz + PAGE_SHIFT; in alloc_link_table_buf()
2523 size = hr_dev->caps.num_qps * hr_dev->func_num * in alloc_link_table_buf()
2905 for (gmv_count = 0; gmv_count < hr_dev->caps.gmv_entry_num; in get_hem_table()
2916 for (qpc_count = 0; qpc_count < hr_dev->caps.qpc_timer_bt_num; in get_hem_table()
2927 for (cqc_count = 0; cqc_count < hr_dev->caps.cqc_timer_bt_num; in get_hem_table()
2958 for (i = 0; i < hr_dev->caps.gmv_entry_num; i++) in put_hem_table()
2964 for (i = 0; i < hr_dev->caps.qpc_timer_bt_num; i++) in put_hem_table()
2967 for (i = 0; i < hr_dev->caps.cqc_timer_bt_num; i++) in put_hem_table()
3630 if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_STASH) in hns_roce_v2_write_cqc()
3637 hr_reg_write(cq_context, CQC_CQE_HOP_NUM, hr_dev->caps.cqe_hop_num == in hns_roce_v2_write_cqc()
3638 HNS_ROCE_HOP_NUM_0 ? 0 : hr_dev->caps.cqe_hop_num); in hns_roce_v2_write_cqc()
4090 u32 idx = obj / (HNS_HW_PAGE_SIZE / hr_dev->caps.gmv_entry_sz); in config_gmv_ba_to_hw()
4237 qpc_size = hr_dev->caps.qpc_sz; in hns_roce_v2_qp_modify()
4356 if (hr_dev->caps.qpc_sz < HNS_ROCE_V3_QPC_SZ) in modify_qp_reset_to_init()
4359 if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_STASH) in modify_qp_reset_to_init()
4427 to_hr_hem_hopnum(hr_dev->caps.wqe_sq_hop_num, in config_qp_rq_buf()
4432 to_hr_hem_hopnum(hr_dev->caps.wqe_sge_hop_num, in config_qp_rq_buf()
4437 to_hr_hem_hopnum(hr_dev->caps.wqe_rq_hop_num, in config_qp_rq_buf()
4665 hr_dev->caps.flags & in modify_qp_init_to_rtr()
4674 hr_dev->caps.flags & in modify_qp_init_to_rtr()
4938 max_sl = min_t(u32, MAX_SERVICE_LEVEL, hr_dev->caps.sl_num - 1); in check_sl_valid()
5043 if (grh->sgid_index >= hr_dev->caps.gid_table_len[hr_port]) { in hns_roce_v2_set_path()
5045 grh->sgid_index, hr_dev->caps.gid_table_len[hr_port]); in hns_roce_v2_set_path()
5124 memset(qpc_mask, 0, hr_dev->caps.qpc_sz); in hns_roce_v2_set_abs_fields()
5352 memset(context, 0, hr_dev->caps.qpc_sz); in hns_roce_v2_modify_qp()
5353 memset(qpc_mask, 0xff, hr_dev->caps.qpc_sz); in hns_roce_v2_modify_qp()
5428 memcpy(buffer, mailbox->buf, hr_dev->caps.qpc_sz); in hns_roce_v2_query_qpc()
5780 to_hr_hem_hopnum(hr_dev->caps.idx_hop_num, srq->wqe_cnt)); in hns_roce_v2_write_srqc_index_queue()
5838 to_hr_hem_hopnum(hr_dev->caps.srqwqe_hop_num, in hns_roce_v2_write_srqc()
6520 if (eqn < hr_dev->caps.num_comp_vectors) in hns_roce_v2_destroy_eqc()
6610 if (hr_dev->caps.eqe_hop_num == HNS_ROCE_HOP_NUM_0) in alloc_eq_buf()
6613 eq->hop_num = hr_dev->caps.eqe_hop_num; in alloc_eq_buf()
6615 buf_attr.page_shift = hr_dev->caps.eqe_buf_pg_sz + PAGE_SHIFT; in alloc_eq_buf()
6621 hr_dev->caps.eqe_ba_pg_sz + PAGE_SHIFT, NULL, in alloc_eq_buf()
6675 while (ceqe && ceqe_num < hr_dev->caps.ceqe_depth) { in hns_roce_ceq_work()
6777 eq_num = hr_dev->caps.num_comp_vectors + hr_dev->caps.num_aeq_vectors; in __hns_roce_free_irq()
6778 irq_num = eq_num + hr_dev->caps.num_other_vectors; in __hns_roce_free_irq()
6780 for (i = 0; i < hr_dev->caps.num_other_vectors; i++) in __hns_roce_free_irq()
6785 if (i < hr_dev->caps.num_comp_vectors) in __hns_roce_free_irq()
6807 if (hr_dev->caps.aeqe_depth < HNS_AEQ_POLLING_BUDGET) in hns_roce_v2_init_eq_table()
6810 other_num = hr_dev->caps.num_other_vectors; in hns_roce_v2_init_eq_table()
6811 comp_num = hr_dev->caps.num_comp_vectors; in hns_roce_v2_init_eq_table()
6812 aeq_num = hr_dev->caps.num_aeq_vectors; in hns_roce_v2_init_eq_table()
6830 eq->entries = hr_dev->caps.ceqe_depth; in hns_roce_v2_init_eq_table()
6831 eq->eqe_size = hr_dev->caps.ceqe_size; in hns_roce_v2_init_eq_table()
6839 eq->entries = hr_dev->caps.aeqe_depth; in hns_roce_v2_init_eq_table()
6840 eq->eqe_size = hr_dev->caps.aeqe_size; in hns_roce_v2_init_eq_table()
6891 eq_num = hr_dev->caps.num_comp_vectors + hr_dev->caps.num_aeq_vectors; in hns_roce_v2_cleanup_eq_table()
6989 hr_dev->caps.num_ports = 1; in hns_roce_hw_v2_get_cfg()