Lines Matching refs:rvu
20 static int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add);
71 bool is_nixlf_attached(struct rvu *rvu, u16 pcifunc) in is_nixlf_attached() argument
73 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in is_nixlf_attached()
76 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in is_nixlf_attached()
82 int rvu_get_nixlf_count(struct rvu *rvu) in rvu_get_nixlf_count() argument
87 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, 0); in rvu_get_nixlf_count()
90 block = &rvu->hw->block[blkaddr]; in rvu_get_nixlf_count()
121 static void nix_rx_sync(struct rvu *rvu, int blkaddr) in nix_rx_sync() argument
126 rvu_write64(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0)); in nix_rx_sync()
127 err = rvu_poll_reg(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0), true); in nix_rx_sync()
129 dev_err(rvu->dev, "NIX RX software sync failed\n"); in nix_rx_sync()
134 if (is_rvu_9xxx_A0(rvu)) in nix_rx_sync()
138 static bool is_valid_txschq(struct rvu *rvu, int blkaddr, in is_valid_txschq() argument
145 nix_hw = get_nix_hw(rvu->hw, blkaddr); in is_valid_txschq()
154 mutex_lock(&rvu->rsrc_lock); in is_valid_txschq()
156 mutex_unlock(&rvu->rsrc_lock); in is_valid_txschq()
170 static int nix_interface_init(struct rvu *rvu, u16 pcifunc, int type, int nixlf) in nix_interface_init() argument
172 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in nix_interface_init()
178 if (!is_pf_cgxmapped(rvu, pf) && type != NIX_INTF_TYPE_LBK) in nix_interface_init()
183 pfvf->cgx_lmac = rvu->pf2cgxlmac_map[pf]; in nix_interface_init()
186 pkind = rvu_npc_get_pkind(rvu, pf); in nix_interface_init()
188 dev_err(rvu->dev, in nix_interface_init()
196 cgx_set_pkind(rvu_cgx_pdata(cgx_id, rvu), lmac_id, pkind); in nix_interface_init()
197 rvu_npc_set_pkind(rvu, pkind, pfvf); in nix_interface_init()
206 rvu_npc_install_promisc_entry(rvu, pcifunc, nixlf, in nix_interface_init()
214 rvu_npc_install_ucast_entry(rvu, pcifunc, nixlf, in nix_interface_init()
218 err = nix_update_bcast_mce_list(rvu, pcifunc, true); in nix_interface_init()
220 dev_err(rvu->dev, in nix_interface_init()
226 rvu_npc_install_bcast_match_entry(rvu, pcifunc, in nix_interface_init()
234 static void nix_interface_deinit(struct rvu *rvu, u16 pcifunc, u8 nixlf) in nix_interface_deinit() argument
236 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in nix_interface_deinit()
244 err = nix_update_bcast_mce_list(rvu, pcifunc, false); in nix_interface_deinit()
246 dev_err(rvu->dev, in nix_interface_deinit()
252 rvu_npc_disable_mcam_entries(rvu, pcifunc, nixlf); in nix_interface_deinit()
255 static void nix_setup_lso_tso_l3(struct rvu *rvu, int blkaddr, in nix_setup_lso_tso_l3() argument
266 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l3()
279 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l3()
284 static void nix_setup_lso_tso_l4(struct rvu *rvu, int blkaddr, in nix_setup_lso_tso_l4() argument
294 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l4()
303 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l4()
308 static void nix_setup_lso(struct rvu *rvu, struct nix_hw *nix_hw, int blkaddr) in nix_setup_lso() argument
313 cfg = (rvu_read64(rvu, blkaddr, NIX_AF_CONST1) >> 48) & 0xFF; in nix_setup_lso()
317 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LSO_CFG); in nix_setup_lso()
323 rvu_write64(rvu, blkaddr, NIX_AF_LSO_CFG, cfg | BIT_ULL(63)); in nix_setup_lso()
330 nix_setup_lso_tso_l3(rvu, blkaddr, idx, true, &fidx); in nix_setup_lso()
331 nix_setup_lso_tso_l4(rvu, blkaddr, idx, &fidx); in nix_setup_lso()
335 rvu_write64(rvu, blkaddr, in nix_setup_lso()
343 nix_setup_lso_tso_l3(rvu, blkaddr, idx, false, &fidx); in nix_setup_lso()
344 nix_setup_lso_tso_l4(rvu, blkaddr, idx, &fidx); in nix_setup_lso()
348 rvu_write64(rvu, blkaddr, in nix_setup_lso()
354 static void nix_ctx_free(struct rvu *rvu, struct rvu_pfvf *pfvf) in nix_ctx_free() argument
360 qmem_free(rvu->dev, pfvf->rq_ctx); in nix_ctx_free()
362 qmem_free(rvu->dev, pfvf->sq_ctx); in nix_ctx_free()
364 qmem_free(rvu->dev, pfvf->cq_ctx); in nix_ctx_free()
366 qmem_free(rvu->dev, pfvf->rss_ctx); in nix_ctx_free()
368 qmem_free(rvu->dev, pfvf->nix_qints_ctx); in nix_ctx_free()
370 qmem_free(rvu->dev, pfvf->cq_ints_ctx); in nix_ctx_free()
383 static int nixlf_rss_ctx_init(struct rvu *rvu, int blkaddr, in nixlf_rss_ctx_init() argument
395 err = qmem_alloc(rvu->dev, &pfvf->rss_ctx, num_indices, hwctx_size); in nixlf_rss_ctx_init()
399 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RSS_BASE(nixlf), in nixlf_rss_ctx_init()
403 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RSS_CFG(nixlf), in nixlf_rss_ctx_init()
408 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RSS_GRPX(nixlf, grp), in nixlf_rss_ctx_init()
413 static int nix_aq_enqueue_wait(struct rvu *rvu, struct rvu_block *block, in nix_aq_enqueue_wait() argument
424 reg = rvu_read64(rvu, block->addr, NIX_AF_AQ_STATUS); in nix_aq_enqueue_wait()
434 rvu_write64(rvu, block->addr, NIX_AF_AQ_DOOR, 1); in nix_aq_enqueue_wait()
450 static int rvu_nix_aq_enq_inst(struct rvu *rvu, struct nix_aq_enq_req *req, in rvu_nix_aq_enq_inst() argument
453 struct rvu_hwinfo *hw = rvu->hw; in rvu_nix_aq_enq_inst()
464 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_nix_aq_enq_inst()
471 dev_warn(rvu->dev, "%s: NIX AQ not initialized\n", __func__); in rvu_nix_aq_enq_inst()
475 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_nix_aq_enq_inst()
476 nixlf = rvu_get_lf(rvu, block, pcifunc, 0); in rvu_nix_aq_enq_inst()
500 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LFX_RSS_CFG(nixlf)); in rvu_nix_aq_enq_inst()
506 cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_MCAST_CFG); in rvu_nix_aq_enq_inst()
530 if (!is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_SMQ, in rvu_nix_aq_enq_inst()
595 rc = nix_aq_enqueue_wait(rvu, block, &inst); in rvu_nix_aq_enq_inst()
666 static int nix_lf_hwctx_disable(struct rvu *rvu, struct hwctx_disable_req *req) in nix_lf_hwctx_disable() argument
668 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, req->hdr.pcifunc); in nix_lf_hwctx_disable()
706 rc = rvu_nix_aq_enq_inst(rvu, &aq_req, NULL); in nix_lf_hwctx_disable()
709 dev_err(rvu->dev, "Failed to disable %s:%d context\n", in nix_lf_hwctx_disable()
719 int rvu_mbox_handler_nix_aq_enq(struct rvu *rvu, in rvu_mbox_handler_nix_aq_enq() argument
723 return rvu_nix_aq_enq_inst(rvu, req, rsp); in rvu_mbox_handler_nix_aq_enq()
726 int rvu_mbox_handler_nix_hwctx_disable(struct rvu *rvu, in rvu_mbox_handler_nix_hwctx_disable() argument
730 return nix_lf_hwctx_disable(rvu, req); in rvu_mbox_handler_nix_hwctx_disable()
733 int rvu_mbox_handler_nix_lf_alloc(struct rvu *rvu, in rvu_mbox_handler_nix_lf_alloc() argument
738 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_lf_alloc()
748 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_lf_alloc()
749 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_lf_alloc()
754 nixlf = rvu_get_lf(rvu, block, pcifunc, 0); in rvu_mbox_handler_nix_lf_alloc()
763 if (!is_pffunc_map_valid(rvu, req->npa_func, BLKTYPE_NPA)) in rvu_mbox_handler_nix_lf_alloc()
772 if (!is_pffunc_map_valid(rvu, req->sso_func, BLKTYPE_SSO)) in rvu_mbox_handler_nix_lf_alloc()
790 err = rvu_lf_reset(rvu, block, nixlf); in rvu_mbox_handler_nix_lf_alloc()
792 dev_err(rvu->dev, "Failed to reset NIX%d LF%d\n", in rvu_mbox_handler_nix_lf_alloc()
797 ctx_cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST3); in rvu_mbox_handler_nix_lf_alloc()
801 err = qmem_alloc(rvu->dev, &pfvf->rq_ctx, req->rq_cnt, hwctx_size); in rvu_mbox_handler_nix_lf_alloc()
809 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RQS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
814 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RQS_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
818 err = qmem_alloc(rvu->dev, &pfvf->sq_ctx, req->sq_cnt, hwctx_size); in rvu_mbox_handler_nix_lf_alloc()
826 rvu_write64(rvu, blkaddr, NIX_AF_LFX_SQS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
829 rvu_write64(rvu, blkaddr, NIX_AF_LFX_SQS_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
833 err = qmem_alloc(rvu->dev, &pfvf->cq_ctx, req->cq_cnt, hwctx_size); in rvu_mbox_handler_nix_lf_alloc()
841 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CQS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
844 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CQS_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
848 err = nixlf_rss_ctx_init(rvu, blkaddr, pfvf, nixlf, in rvu_mbox_handler_nix_lf_alloc()
854 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST2); in rvu_mbox_handler_nix_lf_alloc()
857 err = qmem_alloc(rvu->dev, &pfvf->cq_ints_ctx, qints, hwctx_size); in rvu_mbox_handler_nix_lf_alloc()
861 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CINTS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
863 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CINTS_CFG(nixlf), BIT_ULL(36)); in rvu_mbox_handler_nix_lf_alloc()
866 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST2); in rvu_mbox_handler_nix_lf_alloc()
869 err = qmem_alloc(rvu->dev, &pfvf->nix_qints_ctx, qints, hwctx_size); in rvu_mbox_handler_nix_lf_alloc()
873 rvu_write64(rvu, blkaddr, NIX_AF_LFX_QINTS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
875 rvu_write64(rvu, blkaddr, NIX_AF_LFX_QINTS_CFG(nixlf), BIT_ULL(36)); in rvu_mbox_handler_nix_lf_alloc()
882 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
885 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_CFG2(nixlf), BIT_ULL(0)); in rvu_mbox_handler_nix_lf_alloc()
894 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
897 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf), req->rx_cfg); in rvu_mbox_handler_nix_lf_alloc()
900 err = nix_interface_init(rvu, pcifunc, intf, nixlf); in rvu_mbox_handler_nix_lf_alloc()
905 rvu_npc_disable_default_entries(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_lf_alloc()
910 nix_ctx_free(rvu, pfvf); in rvu_mbox_handler_nix_lf_alloc()
918 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SQ_CONST); in rvu_mbox_handler_nix_lf_alloc()
927 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST1); in rvu_mbox_handler_nix_lf_alloc()
931 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST2); in rvu_mbox_handler_nix_lf_alloc()
937 int rvu_mbox_handler_nix_lf_free(struct rvu *rvu, struct msg_req *req, in rvu_mbox_handler_nix_lf_free() argument
940 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_lf_free()
946 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_lf_free()
947 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_lf_free()
952 nixlf = rvu_get_lf(rvu, block, pcifunc, 0); in rvu_mbox_handler_nix_lf_free()
956 nix_interface_deinit(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_lf_free()
959 err = rvu_lf_reset(rvu, block, nixlf); in rvu_mbox_handler_nix_lf_free()
961 dev_err(rvu->dev, "Failed to reset NIX%d LF%d\n", in rvu_mbox_handler_nix_lf_free()
966 nix_ctx_free(rvu, pfvf); in rvu_mbox_handler_nix_lf_free()
971 int rvu_mbox_handler_nix_mark_format_cfg(struct rvu *rvu, in rvu_mbox_handler_nix_mark_format_cfg() argument
981 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_mark_format_cfg()
982 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_mark_format_cfg()
986 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_mark_format_cfg()
995 rc = rvu_nix_reserve_mark_format(rvu, nix_hw, blkaddr, cfg); in rvu_mbox_handler_nix_mark_format_cfg()
997 dev_err(rvu->dev, "No mark_format_ctl for (pf:%d, vf:%d)", in rvu_mbox_handler_nix_mark_format_cfg()
1009 static void nix_reset_tx_shaping(struct rvu *rvu, int blkaddr, in nix_reset_tx_shaping() argument
1036 cfg = rvu_read64(rvu, blkaddr, cir_reg); in nix_reset_tx_shaping()
1037 rvu_write64(rvu, blkaddr, cir_reg, cfg & ~BIT_ULL(0)); in nix_reset_tx_shaping()
1041 cfg = rvu_read64(rvu, blkaddr, pir_reg); in nix_reset_tx_shaping()
1042 rvu_write64(rvu, blkaddr, pir_reg, cfg & ~BIT_ULL(0)); in nix_reset_tx_shaping()
1045 static void nix_reset_tx_linkcfg(struct rvu *rvu, int blkaddr, in nix_reset_tx_linkcfg() argument
1048 struct rvu_hwinfo *hw = rvu->hw; in nix_reset_tx_linkcfg()
1053 rvu_write64(rvu, blkaddr, NIX_AF_TL4X_SDP_LINK_CFG(schq), 0x00); in nix_reset_tx_linkcfg()
1060 rvu_write64(rvu, blkaddr, in nix_reset_tx_linkcfg()
1065 rvu_get_tl1_schqs(struct rvu *rvu, int blkaddr, u16 pcifunc, in rvu_get_tl1_schqs() argument
1076 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_get_tl1_schqs()
1080 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_get_tl1_schqs()
1094 schq_base = rvu->cgx_cnt_max * MAX_LMAC_PER_CGX * 2; in rvu_get_tl1_schqs()
1111 nix_reset_tx_linkcfg(rvu, blkaddr, in rvu_get_tl1_schqs()
1113 nix_reset_tx_shaping(rvu, blkaddr, in rvu_get_tl1_schqs()
1116 nix_reset_tx_linkcfg(rvu, blkaddr, in rvu_get_tl1_schqs()
1118 nix_reset_tx_shaping(rvu, blkaddr, in rvu_get_tl1_schqs()
1131 int rvu_mbox_handler_nix_txsch_alloc(struct rvu *rvu, in rvu_mbox_handler_nix_txsch_alloc() argument
1144 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_txsch_alloc()
1145 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_txsch_alloc()
1149 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_txsch_alloc()
1153 mutex_lock(&rvu->rsrc_lock); in rvu_mbox_handler_nix_txsch_alloc()
1166 rvu_get_tl1_schqs(rvu, blkaddr, in rvu_mbox_handler_nix_txsch_alloc()
1202 rvu_get_tl1_schqs(rvu, blkaddr, pcifunc, in rvu_mbox_handler_nix_txsch_alloc()
1215 nix_reset_tx_linkcfg(rvu, blkaddr, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1216 nix_reset_tx_shaping(rvu, blkaddr, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1226 nix_reset_tx_linkcfg(rvu, blkaddr, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1227 nix_reset_tx_shaping(rvu, blkaddr, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1235 mutex_unlock(&rvu->rsrc_lock); in rvu_mbox_handler_nix_txsch_alloc()
1239 static int nix_txschq_free(struct rvu *rvu, u16 pcifunc) in nix_txschq_free() argument
1242 struct rvu_hwinfo *hw = rvu->hw; in nix_txschq_free()
1247 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_txschq_free()
1251 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_txschq_free()
1255 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_txschq_free()
1260 mutex_lock(&rvu->rsrc_lock); in nix_txschq_free()
1269 nix_reset_tx_linkcfg(rvu, blkaddr, lvl, schq); in nix_txschq_free()
1278 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq)); in nix_txschq_free()
1281 rvu_write64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq), cfg); in nix_txschq_free()
1284 err = rvu_poll_reg(rvu, blkaddr, in nix_txschq_free()
1287 dev_err(rvu->dev, in nix_txschq_free()
1308 mutex_unlock(&rvu->rsrc_lock); in nix_txschq_free()
1311 rvu_write64(rvu, blkaddr, NIX_AF_NDC_TX_SYNC, BIT_ULL(12) | nixlf); in nix_txschq_free()
1312 err = rvu_poll_reg(rvu, blkaddr, NIX_AF_NDC_TX_SYNC, BIT_ULL(12), true); in nix_txschq_free()
1314 dev_err(rvu->dev, "NDC-TX sync failed for NIXLF %d\n", nixlf); in nix_txschq_free()
1319 static int nix_txschq_free_one(struct rvu *rvu, in nix_txschq_free_one() argument
1323 struct rvu_hwinfo *hw = rvu->hw; in nix_txschq_free_one()
1330 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_txschq_free_one()
1334 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_txschq_free_one()
1338 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_txschq_free_one()
1352 mutex_lock(&rvu->rsrc_lock); in nix_txschq_free_one()
1355 mutex_unlock(&rvu->rsrc_lock); in nix_txschq_free_one()
1363 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq)); in nix_txschq_free_one()
1366 rvu_write64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq), cfg); in nix_txschq_free_one()
1369 rc = rvu_poll_reg(rvu, blkaddr, in nix_txschq_free_one()
1372 dev_err(rvu->dev, in nix_txschq_free_one()
1380 mutex_unlock(&rvu->rsrc_lock); in nix_txschq_free_one()
1386 int rvu_mbox_handler_nix_txsch_free(struct rvu *rvu, in rvu_mbox_handler_nix_txsch_free() argument
1391 return nix_txschq_free(rvu, req->hdr.pcifunc); in rvu_mbox_handler_nix_txsch_free()
1393 return nix_txschq_free_one(rvu, req); in rvu_mbox_handler_nix_txsch_free()
1396 static bool is_txschq_config_valid(struct rvu *rvu, u16 pcifunc, int blkaddr, in is_txschq_config_valid() argument
1407 if (!is_valid_txschq(rvu, blkaddr, lvl, pcifunc, schq)) in is_txschq_config_valid()
1413 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL4, pcifunc, parent)) in is_txschq_config_valid()
1418 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL3, pcifunc, parent)) in is_txschq_config_valid()
1423 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL2, pcifunc, parent)) in is_txschq_config_valid()
1428 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL1, pcifunc, parent)) in is_txschq_config_valid()
1435 nix_tl1_default_cfg(struct rvu *rvu, u16 pcifunc) in nix_tl1_default_cfg() argument
1444 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_tl1_default_cfg()
1448 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_tl1_default_cfg()
1454 mutex_lock(&rvu->rsrc_lock); in nix_tl1_default_cfg()
1456 err = rvu_get_tl1_schqs(rvu, blkaddr, in nix_tl1_default_cfg()
1473 rvu_write64(rvu, blkaddr, reg, regval); in nix_tl1_default_cfg()
1476 rvu_write64(rvu, blkaddr, reg, regval); in nix_tl1_default_cfg()
1479 rvu_write64(rvu, blkaddr, reg, regval); in nix_tl1_default_cfg()
1485 mutex_unlock(&rvu->rsrc_lock); in nix_tl1_default_cfg()
1489 int rvu_mbox_handler_nix_txschq_cfg(struct rvu *rvu, in rvu_mbox_handler_nix_txschq_cfg() argument
1494 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_txschq_cfg()
1507 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_txschq_cfg()
1511 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_txschq_cfg()
1515 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_txschq_cfg()
1527 return nix_tl1_default_cfg(rvu, pcifunc); in rvu_mbox_handler_nix_txschq_cfg()
1535 if (!is_txschq_config_valid(rvu, pcifunc, blkaddr, in rvu_mbox_handler_nix_txschq_cfg()
1541 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], in rvu_mbox_handler_nix_txschq_cfg()
1552 mutex_lock(&rvu->rsrc_lock); in rvu_mbox_handler_nix_txschq_cfg()
1559 mutex_unlock(&rvu->rsrc_lock); in rvu_mbox_handler_nix_txschq_cfg()
1562 rvu_write64(rvu, blkaddr, reg, regval); in rvu_mbox_handler_nix_txschq_cfg()
1567 err = rvu_poll_reg(rvu, blkaddr, in rvu_mbox_handler_nix_txschq_cfg()
1576 static int nix_rx_vtag_cfg(struct rvu *rvu, int nixlf, int blkaddr, in nix_rx_vtag_cfg() argument
1589 rvu_write64(rvu, blkaddr, in nix_rx_vtag_cfg()
1594 int rvu_mbox_handler_nix_vtag_cfg(struct rvu *rvu, in rvu_mbox_handler_nix_vtag_cfg() argument
1598 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_vtag_cfg()
1602 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_vtag_cfg()
1606 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_vtag_cfg()
1611 err = nix_rx_vtag_cfg(rvu, nixlf, blkaddr, req); in rvu_mbox_handler_nix_vtag_cfg()
1622 static int nix_setup_mce(struct rvu *rvu, int mce, u8 op, in nix_setup_mce() argument
1643 err = rvu_nix_aq_enq_inst(rvu, &aq_req, NULL); in nix_setup_mce()
1645 dev_err(rvu->dev, "Failed to setup Bcast MCE for PF%d:VF%d\n", in nix_setup_mce()
1692 static int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add) in nix_update_bcast_mce_list() argument
1706 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_update_bcast_mce_list()
1710 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_update_bcast_mce_list()
1717 pfvf = rvu_get_pfvf(rvu, pcifunc & ~RVU_PFVF_FUNC_MASK); in nix_update_bcast_mce_list()
1722 dev_err(rvu->dev, in nix_update_bcast_mce_list()
1751 err = nix_setup_mce(rvu, mce->idx, in nix_update_bcast_mce_list()
1763 static int nix_setup_bcast_tables(struct rvu *rvu, struct nix_hw *nix_hw) in nix_setup_bcast_tables() argument
1772 for (pf = 1; pf < (rvu->cgx_mapped_pfs + 1); pf++) { in nix_setup_bcast_tables()
1773 cfg = rvu_read64(rvu, BLKADDR_RVUM, RVU_PRIV_PFX_CFG(pf)); in nix_setup_bcast_tables()
1780 pfvf = &rvu->pf[pf]; in nix_setup_bcast_tables()
1795 err = nix_setup_mce(rvu, pfvf->bcast_mce_idx + idx, in nix_setup_bcast_tables()
1805 static int nix_setup_mcast(struct rvu *rvu, struct nix_hw *nix_hw, int blkaddr) in nix_setup_mcast() argument
1808 struct rvu_hwinfo *hw = rvu->hw; in nix_setup_mcast()
1811 size = (rvu_read64(rvu, blkaddr, NIX_AF_CONST3) >> 16) & 0x0F; in nix_setup_mcast()
1815 err = qmem_alloc(rvu->dev, &mcast->mce_ctx, in nix_setup_mcast()
1820 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_BASE, in nix_setup_mcast()
1824 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_CFG, in nix_setup_mcast()
1828 size = rvu_read64(rvu, blkaddr, NIX_AF_MC_MIRROR_CONST) & 0xFFFF; in nix_setup_mcast()
1829 err = qmem_alloc(rvu->dev, &mcast->mcast_buf, in nix_setup_mcast()
1834 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_BUF_BASE, in nix_setup_mcast()
1840 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_BUF_CFG, in nix_setup_mcast()
1846 return nix_setup_bcast_tables(rvu, nix_hw); in nix_setup_mcast()
1849 static int nix_setup_txschq(struct rvu *rvu, struct nix_hw *nix_hw, int blkaddr) in nix_setup_txschq() argument
1878 cfg = rvu_read64(rvu, blkaddr, reg); in nix_setup_txschq()
1887 txsch->pfvf_map = devm_kcalloc(rvu->dev, txsch->schq.max, in nix_setup_txschq()
1896 int rvu_nix_reserve_mark_format(struct rvu *rvu, struct nix_hw *nix_hw, in rvu_nix_reserve_mark_format() argument
1908 rvu_write64(rvu, blkaddr, NIX_AF_MARK_FORMATX_CTL(fmt_idx), cfg); in rvu_nix_reserve_mark_format()
1914 static int nix_af_mark_format_setup(struct rvu *rvu, struct nix_hw *nix_hw, in nix_af_mark_format_setup() argument
1931 total = (rvu_read64(rvu, blkaddr, NIX_AF_PSE_CONST) & 0xFF00) >> 8; in nix_af_mark_format_setup()
1933 nix_hw->mark_format.cfg = devm_kcalloc(rvu->dev, total, sizeof(u32), in nix_af_mark_format_setup()
1938 rc = rvu_nix_reserve_mark_format(rvu, nix_hw, blkaddr, cfgs[i]); in nix_af_mark_format_setup()
1940 dev_err(rvu->dev, "Err %d in setup mark format %d\n", in nix_af_mark_format_setup()
1947 int rvu_mbox_handler_nix_stats_rst(struct rvu *rvu, struct msg_req *req, in rvu_mbox_handler_nix_stats_rst() argument
1950 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_stats_rst()
1955 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_stats_rst()
1959 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_stats_rst()
1964 stats = rvu_read64(rvu, blkaddr, NIX_AF_CONST1); in rvu_mbox_handler_nix_stats_rst()
1968 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_STATX(nixlf, i), 0); in rvu_mbox_handler_nix_stats_rst()
1972 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_STATX(nixlf, i), 0); in rvu_mbox_handler_nix_stats_rst()
2121 static int reserve_flowkey_alg_idx(struct rvu *rvu, int blkaddr, u32 flow_cfg) in reserve_flowkey_alg_idx() argument
2127 hw = get_nix_hw(rvu->hw, blkaddr); in reserve_flowkey_alg_idx()
2142 rvu_write64(rvu, blkaddr, in reserve_flowkey_alg_idx()
2154 int rvu_mbox_handler_nix_rss_flowkey_cfg(struct rvu *rvu, in rvu_mbox_handler_nix_rss_flowkey_cfg() argument
2158 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_rss_flowkey_cfg()
2163 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_rss_flowkey_cfg()
2167 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_rss_flowkey_cfg()
2171 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_rss_flowkey_cfg()
2178 alg_idx = reserve_flowkey_alg_idx(rvu, blkaddr, in rvu_mbox_handler_nix_rss_flowkey_cfg()
2184 rvu_npc_update_flowkey_alg_idx(rvu, pcifunc, nixlf, req->group, in rvu_mbox_handler_nix_rss_flowkey_cfg()
2189 static int nix_rx_flowkey_alg_cfg(struct rvu *rvu, int blkaddr) in nix_rx_flowkey_alg_cfg() argument
2197 rvu_write64(rvu, blkaddr, in nix_rx_flowkey_alg_cfg()
2204 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2211 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2217 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2223 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2230 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2237 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2244 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2251 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
2258 int rvu_mbox_handler_nix_set_mac_addr(struct rvu *rvu, in rvu_mbox_handler_nix_set_mac_addr() argument
2262 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_set_mac_addr()
2267 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_set_mac_addr()
2268 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_set_mac_addr()
2272 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_set_mac_addr()
2278 rvu_npc_install_ucast_entry(rvu, pcifunc, nixlf, in rvu_mbox_handler_nix_set_mac_addr()
2281 rvu_npc_update_rxvlan(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_set_mac_addr()
2286 int rvu_mbox_handler_nix_set_rx_mode(struct rvu *rvu, struct nix_rx_mode *req, in rvu_mbox_handler_nix_set_rx_mode() argument
2290 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_set_rx_mode()
2295 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_set_rx_mode()
2296 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_set_rx_mode()
2300 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_set_rx_mode()
2312 rvu_npc_disable_promisc_entry(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_set_rx_mode()
2314 rvu_npc_install_promisc_entry(rvu, pcifunc, nixlf, in rvu_mbox_handler_nix_set_rx_mode()
2317 rvu_npc_update_rxvlan(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_set_rx_mode()
2322 static void nix_find_link_frs(struct rvu *rvu, in nix_find_link_frs() argument
2332 pfvf = rvu_get_pfvf(rvu, pcifunc); in nix_find_link_frs()
2341 rvu_get_pf_numvfs(rvu, pf, &numvfs, &hwvf); in nix_find_link_frs()
2345 pfvf = &rvu->hwvf[hwvf + vf]; in nix_find_link_frs()
2354 pfvf = &rvu->pf[pf]; in nix_find_link_frs()
2367 int rvu_mbox_handler_nix_set_hw_frs(struct rvu *rvu, struct nix_frs_cfg *req, in rvu_mbox_handler_nix_set_hw_frs() argument
2370 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_set_hw_frs()
2379 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_set_hw_frs()
2383 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_set_hw_frs()
2399 mutex_lock(&rvu->rsrc_lock); in rvu_mbox_handler_nix_set_hw_frs()
2403 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq)); in rvu_mbox_handler_nix_set_hw_frs()
2407 rvu_write64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq), cfg); in rvu_mbox_handler_nix_set_hw_frs()
2409 mutex_unlock(&rvu->rsrc_lock); in rvu_mbox_handler_nix_set_hw_frs()
2421 if (is_pf_cgxmapped(rvu, pf)) { in rvu_mbox_handler_nix_set_hw_frs()
2423 rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx, &lmac); in rvu_mbox_handler_nix_set_hw_frs()
2433 nix_find_link_frs(rvu, req, pcifunc); in rvu_mbox_handler_nix_set_hw_frs()
2436 cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link)); in rvu_mbox_handler_nix_set_hw_frs()
2440 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), cfg); in rvu_mbox_handler_nix_set_hw_frs()
2447 CGX_FIFO_LEN / cgx_get_lmac_cnt(rvu_cgx_pdata(cgx, rvu)); in rvu_mbox_handler_nix_set_hw_frs()
2448 cfg = rvu_read64(rvu, blkaddr, NIX_AF_TX_LINKX_NORM_CREDIT(link)); in rvu_mbox_handler_nix_set_hw_frs()
2451 rvu_write64(rvu, blkaddr, NIX_AF_TX_LINKX_NORM_CREDIT(link), cfg); in rvu_mbox_handler_nix_set_hw_frs()
2452 rvu_write64(rvu, blkaddr, NIX_AF_TX_LINKX_EXPR_CREDIT(link), cfg); in rvu_mbox_handler_nix_set_hw_frs()
2457 int rvu_mbox_handler_nix_rxvlan_alloc(struct rvu *rvu, struct msg_req *req, in rvu_mbox_handler_nix_rxvlan_alloc() argument
2473 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_rxvlan_alloc()
2481 err = rvu_mbox_handler_npc_mcam_alloc_entry(rvu, &alloc_req, in rvu_mbox_handler_nix_rxvlan_alloc()
2487 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_rxvlan_alloc()
2493 nixlf = rvu_get_lf(rvu, &rvu->hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_nix_rxvlan_alloc()
2503 err = rvu_npc_update_rxvlan(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_rxvlan_alloc()
2511 rvu_mbox_handler_npc_mcam_free_entry(rvu, &free_req, rsp); in rvu_mbox_handler_nix_rxvlan_alloc()
2516 int rvu_mbox_handler_nix_set_rx_cfg(struct rvu *rvu, struct nix_rx_cfg *req, in rvu_mbox_handler_nix_set_rx_cfg() argument
2519 struct rvu_hwinfo *hw = rvu->hw; in rvu_mbox_handler_nix_set_rx_cfg()
2526 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_set_rx_cfg()
2527 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_set_rx_cfg()
2532 nixlf = rvu_get_lf(rvu, block, pcifunc, 0); in rvu_mbox_handler_nix_set_rx_cfg()
2536 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf)); in rvu_mbox_handler_nix_set_rx_cfg()
2553 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf), cfg); in rvu_mbox_handler_nix_set_rx_cfg()
2558 static void nix_link_config(struct rvu *rvu, int blkaddr) in nix_link_config() argument
2560 struct rvu_hwinfo *hw = rvu->hw; in nix_link_config()
2571 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), in nix_link_config()
2577 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), in nix_link_config()
2585 lmac_cnt = cgx_get_lmac_cnt(rvu_cgx_pdata(cgx, rvu)); in nix_link_config()
2591 rvu_write64(rvu, blkaddr, in nix_link_config()
2594 rvu_write64(rvu, blkaddr, in nix_link_config()
2606 rvu_write64(rvu, blkaddr, in nix_link_config()
2608 rvu_write64(rvu, blkaddr, in nix_link_config()
2613 static int nix_calibrate_x2p(struct rvu *rvu, int blkaddr) in nix_calibrate_x2p() argument
2619 rvu_write64(rvu, blkaddr, NIX_AF_CFG, in nix_calibrate_x2p()
2620 rvu_read64(rvu, blkaddr, NIX_AF_CFG) | BIT_ULL(9)); in nix_calibrate_x2p()
2622 err = rvu_poll_reg(rvu, blkaddr, in nix_calibrate_x2p()
2625 dev_err(rvu->dev, "NIX X2P bus calibration failed\n"); in nix_calibrate_x2p()
2629 status = rvu_read64(rvu, blkaddr, NIX_AF_STATUS); in nix_calibrate_x2p()
2631 for (idx = 0; idx < rvu->cgx_cnt_max; idx++) { in nix_calibrate_x2p()
2633 if (!rvu_cgx_pdata(idx, rvu) || in nix_calibrate_x2p()
2636 dev_err(rvu->dev, in nix_calibrate_x2p()
2643 dev_err(rvu->dev, in nix_calibrate_x2p()
2649 rvu_write64(rvu, blkaddr, NIX_AF_CFG, in nix_calibrate_x2p()
2650 rvu_read64(rvu, blkaddr, NIX_AF_CFG) & ~BIT_ULL(9)); in nix_calibrate_x2p()
2652 dev_err(rvu->dev, in nix_calibrate_x2p()
2659 static int nix_aq_init(struct rvu *rvu, struct rvu_block *block) in nix_aq_init() argument
2665 cfg = rvu_read64(rvu, block->addr, NIX_AF_CFG); in nix_aq_init()
2668 rvu_write64(rvu, block->addr, NIX_AF_CFG, cfg); in nix_aq_init()
2671 rvu_write64(rvu, block->addr, NIX_AF_CFG, cfg); in nix_aq_init()
2675 cfg = rvu_read64(rvu, block->addr, NIX_AF_NDC_CFG); in nix_aq_init()
2677 rvu_write64(rvu, block->addr, NIX_AF_NDC_CFG, cfg); in nix_aq_init()
2683 err = rvu_aq_alloc(rvu, &block->aq, in nix_aq_init()
2689 rvu_write64(rvu, block->addr, NIX_AF_AQ_CFG, AQ_SIZE); in nix_aq_init()
2690 rvu_write64(rvu, block->addr, in nix_aq_init()
2695 int rvu_nix_init(struct rvu *rvu) in rvu_nix_init() argument
2697 struct rvu_hwinfo *hw = rvu->hw; in rvu_nix_init()
2702 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, 0); in rvu_nix_init()
2711 if (is_rvu_9xxx_A0(rvu)) in rvu_nix_init()
2712 rvu_write64(rvu, blkaddr, NIX_AF_CFG, in rvu_nix_init()
2713 rvu_read64(rvu, blkaddr, NIX_AF_CFG) | 0x5EULL); in rvu_nix_init()
2716 err = nix_calibrate_x2p(rvu, blkaddr); in rvu_nix_init()
2721 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST); in rvu_nix_init()
2729 err = nix_aq_init(rvu, block); in rvu_nix_init()
2734 rvu_write64(rvu, blkaddr, NIX_AF_CINT_DELAY, 0x0ULL); in rvu_nix_init()
2737 hw->nix0 = devm_kzalloc(rvu->dev, in rvu_nix_init()
2742 err = nix_setup_txschq(rvu, hw->nix0, blkaddr); in rvu_nix_init()
2746 err = nix_af_mark_format_setup(rvu, hw->nix0, blkaddr); in rvu_nix_init()
2750 err = nix_setup_mcast(rvu, hw->nix0, blkaddr); in rvu_nix_init()
2755 nix_setup_lso(rvu, hw->nix0, blkaddr); in rvu_nix_init()
2761 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OL2, in rvu_nix_init()
2763 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OIP4, in rvu_nix_init()
2765 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IIP4, in rvu_nix_init()
2767 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OIP6, in rvu_nix_init()
2769 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IIP6, in rvu_nix_init()
2771 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OTCP, in rvu_nix_init()
2773 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_ITCP, in rvu_nix_init()
2775 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OUDP, in rvu_nix_init()
2777 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IUDP, in rvu_nix_init()
2779 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OSCTP, in rvu_nix_init()
2781 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_ISCTP, in rvu_nix_init()
2785 err = nix_rx_flowkey_alg_cfg(rvu, blkaddr); in rvu_nix_init()
2790 nix_link_config(rvu, blkaddr); in rvu_nix_init()
2795 void rvu_nix_freemem(struct rvu *rvu) in rvu_nix_freemem() argument
2797 struct rvu_hwinfo *hw = rvu->hw; in rvu_nix_freemem()
2804 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, 0); in rvu_nix_freemem()
2809 rvu_aq_free(rvu, block->aq); in rvu_nix_freemem()
2812 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_nix_freemem()
2822 qmem_free(rvu->dev, mcast->mce_ctx); in rvu_nix_freemem()
2823 qmem_free(rvu->dev, mcast->mcast_buf); in rvu_nix_freemem()
2828 static int nix_get_nixlf(struct rvu *rvu, u16 pcifunc, int *nixlf) in nix_get_nixlf() argument
2830 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in nix_get_nixlf()
2831 struct rvu_hwinfo *hw = rvu->hw; in nix_get_nixlf()
2834 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_get_nixlf()
2838 *nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_get_nixlf()
2845 int rvu_mbox_handler_nix_lf_start_rx(struct rvu *rvu, struct msg_req *req, in rvu_mbox_handler_nix_lf_start_rx() argument
2851 err = nix_get_nixlf(rvu, pcifunc, &nixlf); in rvu_mbox_handler_nix_lf_start_rx()
2855 rvu_npc_enable_default_entries(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_lf_start_rx()
2859 int rvu_mbox_handler_nix_lf_stop_rx(struct rvu *rvu, struct msg_req *req, in rvu_mbox_handler_nix_lf_stop_rx() argument
2865 err = nix_get_nixlf(rvu, pcifunc, &nixlf); in rvu_mbox_handler_nix_lf_stop_rx()
2869 rvu_npc_disable_default_entries(rvu, pcifunc, nixlf); in rvu_mbox_handler_nix_lf_stop_rx()
2873 void rvu_nix_lf_teardown(struct rvu *rvu, u16 pcifunc, int blkaddr, int nixlf) in rvu_nix_lf_teardown() argument
2875 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_nix_lf_teardown()
2882 nix_interface_deinit(rvu, pcifunc, nixlf); in rvu_nix_lf_teardown()
2883 nix_rx_sync(rvu, blkaddr); in rvu_nix_lf_teardown()
2884 nix_txschq_free(rvu, pcifunc); in rvu_nix_lf_teardown()
2888 err = nix_lf_hwctx_disable(rvu, &ctx_req); in rvu_nix_lf_teardown()
2890 dev_err(rvu->dev, "SQ ctx disable failed\n"); in rvu_nix_lf_teardown()
2895 err = nix_lf_hwctx_disable(rvu, &ctx_req); in rvu_nix_lf_teardown()
2897 dev_err(rvu->dev, "RQ ctx disable failed\n"); in rvu_nix_lf_teardown()
2902 err = nix_lf_hwctx_disable(rvu, &ctx_req); in rvu_nix_lf_teardown()
2904 dev_err(rvu->dev, "CQ ctx disable failed\n"); in rvu_nix_lf_teardown()
2907 nix_ctx_free(rvu, pfvf); in rvu_nix_lf_teardown()
2910 int rvu_mbox_handler_nix_lso_format_cfg(struct rvu *rvu, in rvu_mbox_handler_nix_lso_format_cfg() argument
2920 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_nix_lso_format_cfg()
2921 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_lso_format_cfg()
2925 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_lso_format_cfg()
2932 reg = rvu_read64(rvu, blkaddr, in rvu_mbox_handler_nix_lso_format_cfg()
2954 rvu_write64(rvu, blkaddr, in rvu_mbox_handler_nix_lso_format_cfg()