Lines Matching refs:blkaddr
24 struct nix_hw *nix_hw, int blkaddr);
80 int rvu_get_next_nix_blkaddr(struct rvu *rvu, int blkaddr) in rvu_get_next_nix_blkaddr() argument
85 if (blkaddr == 0) in rvu_get_next_nix_blkaddr()
86 return rvu->nix_blkaddr[blkaddr]; in rvu_get_next_nix_blkaddr()
89 if (rvu->nix_blkaddr[i] == blkaddr) in rvu_get_next_nix_blkaddr()
100 int blkaddr; in is_nixlf_attached() local
102 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in is_nixlf_attached()
103 if (!pfvf->nixlf || blkaddr < 0) in is_nixlf_attached()
110 int blkaddr = 0, max = 0; in rvu_get_nixlf_count() local
113 blkaddr = rvu_get_next_nix_blkaddr(rvu, blkaddr); in rvu_get_nixlf_count()
114 while (blkaddr) { in rvu_get_nixlf_count()
115 block = &rvu->hw->block[blkaddr]; in rvu_get_nixlf_count()
117 blkaddr = rvu_get_next_nix_blkaddr(rvu, blkaddr); in rvu_get_nixlf_count()
126 int blkaddr; in nix_get_nixlf() local
128 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_get_nixlf()
129 if (!pfvf->nixlf || blkaddr < 0) in nix_get_nixlf()
132 *nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_get_nixlf()
137 *nix_blkaddr = blkaddr; in nix_get_nixlf()
143 struct nix_hw **nix_hw, int *blkaddr) in nix_get_struct_ptrs() argument
148 *blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_get_struct_ptrs()
149 if (!pfvf->nixlf || *blkaddr < 0) in nix_get_struct_ptrs()
152 *nix_hw = get_nix_hw(rvu->hw, *blkaddr); in nix_get_struct_ptrs()
177 struct nix_hw *get_nix_hw(struct rvu_hwinfo *hw, int blkaddr) in get_nix_hw() argument
184 if (blkaddr == nix_blkaddr && hw->nix) in get_nix_hw()
233 static void nix_rx_sync(struct rvu *rvu, int blkaddr) in nix_rx_sync() argument
238 rvu_write64(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0)); in nix_rx_sync()
239 err = rvu_poll_reg(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0), true); in nix_rx_sync()
249 rvu_write64(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0)); in nix_rx_sync()
250 err = rvu_poll_reg(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0), true); in nix_rx_sync()
255 static bool is_valid_txschq(struct rvu *rvu, int blkaddr, in is_valid_txschq() argument
263 nix_hw = get_nix_hw(rvu->hw, blkaddr); in is_valid_txschq()
479 int blkaddr, pf, type; in rvu_mbox_handler_nix_bp_disable() local
489 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_bp_disable()
493 cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_CHANX_CFG(chan)); in rvu_mbox_handler_nix_bp_disable()
494 rvu_write64(rvu, blkaddr, NIX_AF_RX_CHANX_CFG(chan), in rvu_mbox_handler_nix_bp_disable()
503 int bpid, blkaddr, lmac_chan_cnt, sdp_chan_cnt; in rvu_nix_get_bpid() local
510 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, req->hdr.pcifunc); in rvu_nix_get_bpid()
511 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST); in rvu_nix_get_bpid()
514 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST1); in rvu_nix_get_bpid()
578 int blkaddr, pf, type, chan_id = 0; in rvu_mbox_handler_nix_bp_enable() local
596 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_bp_enable()
608 cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_CHANX_CFG(chan)); in rvu_mbox_handler_nix_bp_enable()
610 rvu_write64(rvu, blkaddr, NIX_AF_RX_CHANX_CFG(chan), in rvu_mbox_handler_nix_bp_enable()
628 static void nix_setup_lso_tso_l3(struct rvu *rvu, int blkaddr, in nix_setup_lso_tso_l3() argument
639 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l3()
652 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l3()
657 static void nix_setup_lso_tso_l4(struct rvu *rvu, int blkaddr, in nix_setup_lso_tso_l4() argument
667 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l4()
676 rvu_write64(rvu, blkaddr, in nix_setup_lso_tso_l4()
681 static void nix_setup_lso(struct rvu *rvu, struct nix_hw *nix_hw, int blkaddr) in nix_setup_lso() argument
686 cfg = (rvu_read64(rvu, blkaddr, NIX_AF_CONST1) >> 48) & 0xFF; in nix_setup_lso()
690 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LSO_CFG); in nix_setup_lso()
696 rvu_write64(rvu, blkaddr, NIX_AF_LSO_CFG, cfg | BIT_ULL(63)); in nix_setup_lso()
703 nix_setup_lso_tso_l3(rvu, blkaddr, idx, true, &fidx); in nix_setup_lso()
704 nix_setup_lso_tso_l4(rvu, blkaddr, idx, &fidx); in nix_setup_lso()
708 rvu_write64(rvu, blkaddr, in nix_setup_lso()
716 nix_setup_lso_tso_l3(rvu, blkaddr, idx, false, &fidx); in nix_setup_lso()
717 nix_setup_lso_tso_l4(rvu, blkaddr, idx, &fidx); in nix_setup_lso()
721 rvu_write64(rvu, blkaddr, in nix_setup_lso()
756 static int nixlf_rss_ctx_init(struct rvu *rvu, int blkaddr, in nixlf_rss_ctx_init() argument
774 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RSS_BASE(nixlf), in nixlf_rss_ctx_init()
784 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RSS_CFG(nixlf), val); in nixlf_rss_ctx_init()
787 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RSS_GRPX(nixlf, grp), in nixlf_rss_ctx_init()
835 int nixlf, blkaddr, rc = 0; in rvu_nix_blk_aq_enq_inst() local
844 blkaddr = nix_hw->blkaddr; in rvu_nix_blk_aq_enq_inst()
845 block = &hw->block[blkaddr]; in rvu_nix_blk_aq_enq_inst()
880 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LFX_RSS_CFG(nixlf)); in rvu_nix_blk_aq_enq_inst()
886 cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_MCAST_CFG); in rvu_nix_blk_aq_enq_inst()
916 if (!is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_SMQ, in rvu_nix_blk_aq_enq_inst()
1068 int blkaddr; in rvu_nix_aq_enq_inst() local
1070 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, req->hdr.pcifunc); in rvu_nix_aq_enq_inst()
1071 if (blkaddr < 0) in rvu_nix_aq_enq_inst()
1074 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_nix_aq_enq_inst()
1222 int blkaddr; in rvu_mbox_handler_nix_lf_alloc() local
1231 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_lf_alloc()
1232 if (!pfvf->nixlf || blkaddr < 0) in rvu_mbox_handler_nix_lf_alloc()
1235 block = &hw->block[blkaddr]; in rvu_mbox_handler_nix_lf_alloc()
1279 ctx_cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST3); in rvu_mbox_handler_nix_lf_alloc()
1291 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RQS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1296 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RQS_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
1308 rvu_write64(rvu, blkaddr, NIX_AF_LFX_SQS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1312 rvu_write64(rvu, blkaddr, NIX_AF_LFX_SQS_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
1324 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CQS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1328 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CQS_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
1332 err = nixlf_rss_ctx_init(rvu, blkaddr, pfvf, nixlf, req->rss_sz, in rvu_mbox_handler_nix_lf_alloc()
1339 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST2); in rvu_mbox_handler_nix_lf_alloc()
1346 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CINTS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1349 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CINTS_CFG(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1353 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST2); in rvu_mbox_handler_nix_lf_alloc()
1360 rvu_write64(rvu, blkaddr, NIX_AF_LFX_QINTS_BASE(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1362 rvu_write64(rvu, blkaddr, NIX_AF_LFX_QINTS_CFG(nixlf), in rvu_mbox_handler_nix_lf_alloc()
1370 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
1373 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_CFG2(nixlf), BIT_ULL(0)); in rvu_mbox_handler_nix_lf_alloc()
1382 rvu_write64(rvu, blkaddr, NIX_AF_LFX_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
1385 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf), req->rx_cfg); in rvu_mbox_handler_nix_lf_alloc()
1389 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_PARSE_CFG(nixlf), cfg); in rvu_mbox_handler_nix_lf_alloc()
1404 rvu_write64(rvu, blkaddr, in rvu_mbox_handler_nix_lf_alloc()
1419 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SQ_CONST); in rvu_mbox_handler_nix_lf_alloc()
1428 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST1); in rvu_mbox_handler_nix_lf_alloc()
1432 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST2); in rvu_mbox_handler_nix_lf_alloc()
1448 int blkaddr, nixlf, err; in rvu_mbox_handler_nix_lf_free() local
1452 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_lf_free()
1453 if (!pfvf->nixlf || blkaddr < 0) in rvu_mbox_handler_nix_lf_free()
1456 block = &hw->block[blkaddr]; in rvu_mbox_handler_nix_lf_free()
1492 int blkaddr, rc; in rvu_mbox_handler_nix_mark_format_cfg() local
1496 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_mark_format_cfg()
1497 if (!pfvf->nixlf || blkaddr < 0) in rvu_mbox_handler_nix_mark_format_cfg()
1500 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_mark_format_cfg()
1509 rc = rvu_nix_reserve_mark_format(rvu, nix_hw, blkaddr, cfg); in rvu_mbox_handler_nix_mark_format_cfg()
1522 handle_txschq_shaper_update(struct rvu *rvu, int blkaddr, int nixlf, in handle_txschq_shaper_update() argument
1574 oldval = rvu_read64(rvu, blkaddr, reg); in handle_txschq_shaper_update()
1576 rvu_write64(rvu, blkaddr, reg, regval); in handle_txschq_shaper_update()
1582 rvu_write64(rvu, blkaddr, sw_xoff, 1); in handle_txschq_shaper_update()
1583 rvu_write64(rvu, blkaddr, reg, 0); in handle_txschq_shaper_update()
1585 rvu_write64(rvu, blkaddr, sw_xoff, 0); in handle_txschq_shaper_update()
1590 rvu_write64(rvu, blkaddr, sw_xoff, 1); in handle_txschq_shaper_update()
1602 dbgval = rvu_read64(rvu, blkaddr, md_debug0); in handle_txschq_shaper_update()
1605 rvu_write64(rvu, blkaddr, reg, regval); in handle_txschq_shaper_update()
1607 rvu_write64(rvu, blkaddr, sw_xoff, 0); in handle_txschq_shaper_update()
1614 static void nix_reset_tx_shaping(struct rvu *rvu, int blkaddr, in nix_reset_tx_shaping() argument
1647 handle_txschq_shaper_update(rvu, blkaddr, nixlf, in nix_reset_tx_shaping()
1650 handle_txschq_shaper_update(rvu, blkaddr, nixlf, in nix_reset_tx_shaping()
1657 cfg = rvu_read64(rvu, blkaddr, cir_reg); in nix_reset_tx_shaping()
1658 rvu_write64(rvu, blkaddr, cir_reg, cfg & ~BIT_ULL(0)); in nix_reset_tx_shaping()
1662 cfg = rvu_read64(rvu, blkaddr, pir_reg); in nix_reset_tx_shaping()
1663 rvu_write64(rvu, blkaddr, pir_reg, cfg & ~BIT_ULL(0)); in nix_reset_tx_shaping()
1666 static void nix_reset_tx_linkcfg(struct rvu *rvu, int blkaddr, in nix_reset_tx_linkcfg() argument
1678 rvu_write64(rvu, blkaddr, NIX_AF_TL4X_SDP_LINK_CFG(schq), 0x00); in nix_reset_tx_linkcfg()
1680 link_level = rvu_read64(rvu, blkaddr, NIX_AF_PSE_CHANNEL_LEVEL) & 0x01 ? in nix_reset_tx_linkcfg()
1687 rvu_write64(rvu, blkaddr, in nix_reset_tx_linkcfg()
1691 static void nix_clear_tx_xoff(struct rvu *rvu, int blkaddr, in nix_clear_tx_xoff() argument
1722 rvu_write64(rvu, blkaddr, reg, 0x0); in nix_clear_tx_xoff()
1899 int link, blkaddr, rc = 0; in rvu_mbox_handler_nix_txsch_alloc() local
1907 rc = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_txsch_alloc()
1911 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_txsch_alloc()
1957 nix_reset_tx_linkcfg(rvu, blkaddr, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1958 nix_reset_tx_shaping(rvu, blkaddr, nixlf, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1966 nix_reset_tx_linkcfg(rvu, blkaddr, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1967 nix_reset_tx_shaping(rvu, blkaddr, nixlf, lvl, schq); in rvu_mbox_handler_nix_txsch_alloc()
1973 rsp->link_cfg_lvl = rvu_read64(rvu, blkaddr, in rvu_mbox_handler_nix_txsch_alloc()
1984 static int nix_smq_flush(struct rvu *rvu, int blkaddr, in nix_smq_flush() argument
1999 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SMQX_CFG(smq)); in nix_smq_flush()
2002 rvu_write64(rvu, blkaddr, NIX_AF_SMQX_CFG(smq), cfg); in nix_smq_flush()
2010 err = rvu_poll_reg(rvu, blkaddr, in nix_smq_flush()
2025 int blkaddr, nixlf, lvl, schq, err; in nix_txschq_free() local
2031 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_txschq_free()
2032 if (blkaddr < 0) in nix_txschq_free()
2035 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_txschq_free()
2039 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_txschq_free()
2054 nix_reset_tx_linkcfg(rvu, blkaddr, lvl, schq); in nix_txschq_free()
2055 nix_clear_tx_xoff(rvu, blkaddr, lvl, schq); in nix_txschq_free()
2058 nix_clear_tx_xoff(rvu, blkaddr, NIX_TXSCH_LVL_TL1, in nix_txschq_free()
2079 nix_smq_flush(rvu, blkaddr, schq, pcifunc, nixlf); in nix_txschq_free()
2101 rvu_write64(rvu, blkaddr, NIX_AF_NDC_TX_SYNC, BIT_ULL(12) | nixlf); in nix_txschq_free()
2102 err = rvu_poll_reg(rvu, blkaddr, NIX_AF_NDC_TX_SYNC, BIT_ULL(12), true); in nix_txschq_free()
2114 int lvl, schq, nixlf, blkaddr; in nix_txschq_free_one() local
2120 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_txschq_free_one()
2121 if (blkaddr < 0) in nix_txschq_free_one()
2124 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_txschq_free_one()
2128 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_txschq_free_one()
2151 nix_clear_tx_xoff(rvu, blkaddr, lvl, schq); in nix_txschq_free_one()
2157 nix_smq_flush(rvu, blkaddr, schq, pcifunc, nixlf)) { in nix_txschq_free_one()
2182 static bool is_txschq_hierarchy_valid(struct rvu *rvu, u16 pcifunc, int blkaddr, in is_txschq_hierarchy_valid() argument
2193 if (!is_valid_txschq(rvu, blkaddr, lvl, pcifunc, schq)) in is_txschq_hierarchy_valid()
2199 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL4, pcifunc, parent)) in is_txschq_hierarchy_valid()
2204 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL3, pcifunc, parent)) in is_txschq_hierarchy_valid()
2209 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL2, pcifunc, parent)) in is_txschq_hierarchy_valid()
2214 !is_valid_txschq(rvu, blkaddr, NIX_TXSCH_LVL_TL1, pcifunc, parent)) in is_txschq_hierarchy_valid()
2262 u16 pcifunc, int blkaddr) in nix_tl1_default_cfg() argument
2272 rvu_write64(rvu, blkaddr, NIX_AF_TL1X_TOPOLOGY(schq), in nix_tl1_default_cfg()
2279 rvu_write64(rvu, blkaddr, NIX_AF_TL1X_SCHEDULE(schq), in nix_tl1_default_cfg()
2282 rvu_write64(rvu, blkaddr, NIX_AF_TL1X_SCHEDULE(schq), in nix_tl1_default_cfg()
2285 rvu_write64(rvu, blkaddr, NIX_AF_TL1X_CIR(schq), 0x00); in nix_tl1_default_cfg()
2295 int blkaddr, struct nix_txschq_config *req, in nix_txschq_cfg_read() argument
2307 !is_valid_txschq(rvu, blkaddr, req->lvl, pcifunc, schq)) in nix_txschq_cfg_read()
2309 rsp->regval[idx] = rvu_read64(rvu, blkaddr, reg); in nix_txschq_cfg_read()
2316 static void rvu_nix_tx_tl2_cfg(struct rvu *rvu, int blkaddr, in rvu_nix_tx_tl2_cfg() argument
2337 rvu_write64(rvu, blkaddr, in rvu_nix_tx_tl2_cfg()
2354 int blkaddr, idx, err; in rvu_mbox_handler_nix_txschq_cfg() local
2362 err = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_txschq_cfg()
2366 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_txschq_cfg()
2371 return nix_txschq_cfg_read(rvu, nix_hw, blkaddr, req, rsp); in rvu_mbox_handler_nix_txschq_cfg()
2380 nix_tl1_default_cfg(rvu, nix_hw, pcifunc, blkaddr); in rvu_mbox_handler_nix_txschq_cfg()
2392 if (!is_txschq_hierarchy_valid(rvu, pcifunc, blkaddr, in rvu_mbox_handler_nix_txschq_cfg()
2400 val = rvu_read64(rvu, blkaddr, reg); in rvu_mbox_handler_nix_txschq_cfg()
2405 handle_txschq_shaper_update(rvu, blkaddr, nixlf, in rvu_mbox_handler_nix_txschq_cfg()
2411 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], in rvu_mbox_handler_nix_txschq_cfg()
2441 nix_smq_flush(rvu, blkaddr, schq, pcifunc, nixlf); in rvu_mbox_handler_nix_txschq_cfg()
2444 rvu_write64(rvu, blkaddr, reg, regval); in rvu_mbox_handler_nix_txschq_cfg()
2447 rvu_nix_tx_tl2_cfg(rvu, blkaddr, pcifunc, in rvu_mbox_handler_nix_txschq_cfg()
2452 static int nix_rx_vtag_cfg(struct rvu *rvu, int nixlf, int blkaddr, in nix_rx_vtag_cfg() argument
2470 rvu_write64(rvu, blkaddr, in nix_rx_vtag_cfg()
2475 static int nix_tx_vtag_free(struct rvu *rvu, int blkaddr, in nix_tx_vtag_free() argument
2478 struct nix_hw *nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_tx_vtag_free()
2488 rvu_write64(rvu, blkaddr, in nix_tx_vtag_free()
2490 rvu_write64(rvu, blkaddr, in nix_tx_vtag_free()
2503 int index, blkaddr; in nix_free_tx_vtag_entries() local
2505 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_free_tx_vtag_entries()
2506 if (blkaddr < 0) in nix_free_tx_vtag_entries()
2509 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_free_tx_vtag_entries()
2519 nix_tx_vtag_free(rvu, blkaddr, pcifunc, index); in nix_free_tx_vtag_entries()
2524 static int nix_tx_vtag_alloc(struct rvu *rvu, int blkaddr, in nix_tx_vtag_alloc() argument
2527 struct nix_hw *nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_tx_vtag_alloc()
2549 rvu_write64(rvu, blkaddr, in nix_tx_vtag_alloc()
2551 rvu_write64(rvu, blkaddr, in nix_tx_vtag_alloc()
2557 static int nix_tx_vtag_decfg(struct rvu *rvu, int blkaddr, in nix_tx_vtag_decfg() argument
2560 struct nix_hw *nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_tx_vtag_decfg()
2579 err = nix_tx_vtag_free(rvu, blkaddr, pcifunc, idx0); in nix_tx_vtag_decfg()
2585 err = nix_tx_vtag_free(rvu, blkaddr, pcifunc, idx1); in nix_tx_vtag_decfg()
2592 static int nix_tx_vtag_cfg(struct rvu *rvu, int blkaddr, in nix_tx_vtag_cfg() argument
2596 struct nix_hw *nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_tx_vtag_cfg()
2606 nix_tx_vtag_alloc(rvu, blkaddr, in nix_tx_vtag_cfg()
2617 nix_tx_vtag_alloc(rvu, blkaddr, in nix_tx_vtag_cfg()
2630 nix_tx_vtag_free(rvu, blkaddr, pcifunc, rsp->vtag0_idx); in nix_tx_vtag_cfg()
2640 int blkaddr, nixlf, err; in rvu_mbox_handler_nix_vtag_cfg() local
2642 err = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_vtag_cfg()
2648 err = nix_rx_vtag_cfg(rvu, nixlf, blkaddr, req); in rvu_mbox_handler_nix_vtag_cfg()
2658 return nix_tx_vtag_cfg(rvu, blkaddr, req, rsp); in rvu_mbox_handler_nix_vtag_cfg()
2661 return nix_tx_vtag_decfg(rvu, blkaddr, req); in rvu_mbox_handler_nix_vtag_cfg()
2743 int err = 0, idx, next_idx, last_idx, blkaddr, npc_blkaddr; in nix_update_mce_list() local
2763 err = nix_get_struct_ptrs(rvu, pcifunc, &nix_hw, &blkaddr); in nix_update_mce_list()
2837 int err = 0, nixlf, blkaddr, mcam_index, mce_idx; in nix_update_mce_rule() local
2854 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in nix_update_mce_rule()
2855 if (blkaddr < 0) in nix_update_mce_rule()
2858 nixlf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in nix_update_mce_rule()
2892 if (pfvf->nix_blkaddr != nix_hw->blkaddr) in nix_setup_mce_tables()
2943 static int nix_setup_mcast(struct rvu *rvu, struct nix_hw *nix_hw, int blkaddr) in nix_setup_mcast() argument
2949 size = (rvu_read64(rvu, blkaddr, NIX_AF_CONST3) >> 16) & 0x0F; in nix_setup_mcast()
2958 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_BASE, in nix_setup_mcast()
2962 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_CFG, in nix_setup_mcast()
2966 size = rvu_read64(rvu, blkaddr, NIX_AF_MC_MIRROR_CONST) & 0xFFFF; in nix_setup_mcast()
2972 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_BUF_BASE, in nix_setup_mcast()
2978 rvu_write64(rvu, blkaddr, NIX_AF_RX_MCAST_BUF_CFG, in nix_setup_mcast()
3012 static int nix_setup_txschq(struct rvu *rvu, struct nix_hw *nix_hw, int blkaddr) in nix_setup_txschq() argument
3041 cfg = rvu_read64(rvu, blkaddr, reg); in nix_setup_txschq()
3060 rvu_write64(rvu, blkaddr, NIX_AF_DWRR_RPM_MTU, in nix_setup_txschq()
3062 rvu_write64(rvu, blkaddr, NIX_AF_DWRR_SDP_MTU, in nix_setup_txschq()
3070 int blkaddr, u32 cfg) in rvu_nix_reserve_mark_format() argument
3081 rvu_write64(rvu, blkaddr, NIX_AF_MARK_FORMATX_CTL(fmt_idx), cfg); in rvu_nix_reserve_mark_format()
3088 int blkaddr) in nix_af_mark_format_setup() argument
3104 total = (rvu_read64(rvu, blkaddr, NIX_AF_PSE_CONST) & 0xFF00) >> 8; in nix_af_mark_format_setup()
3111 rc = rvu_nix_reserve_mark_format(rvu, nix_hw, blkaddr, cfgs[i]); in nix_af_mark_format_setup()
3143 int blkaddr; in rvu_mbox_handler_nix_get_hw_info() local
3145 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_get_hw_info()
3146 if (blkaddr < 0) in rvu_mbox_handler_nix_get_hw_info()
3176 int i, nixlf, blkaddr, err; in rvu_mbox_handler_nix_stats_rst() local
3179 err = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_stats_rst()
3184 stats = rvu_read64(rvu, blkaddr, NIX_AF_CONST1); in rvu_mbox_handler_nix_stats_rst()
3188 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_STATX(nixlf, i), 0); in rvu_mbox_handler_nix_stats_rst()
3192 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_STATX(nixlf, i), 0); in rvu_mbox_handler_nix_stats_rst()
3474 static int reserve_flowkey_alg_idx(struct rvu *rvu, int blkaddr, u32 flow_cfg) in reserve_flowkey_alg_idx() argument
3480 hw = get_nix_hw(rvu->hw, blkaddr); in reserve_flowkey_alg_idx()
3495 rvu_write64(rvu, blkaddr, in reserve_flowkey_alg_idx()
3512 int alg_idx, nixlf, blkaddr; in rvu_mbox_handler_nix_rss_flowkey_cfg() local
3516 err = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_rss_flowkey_cfg()
3520 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_rss_flowkey_cfg()
3527 alg_idx = reserve_flowkey_alg_idx(rvu, blkaddr, in rvu_mbox_handler_nix_rss_flowkey_cfg()
3538 static int nix_rx_flowkey_alg_cfg(struct rvu *rvu, int blkaddr) in nix_rx_flowkey_alg_cfg() argument
3546 rvu_write64(rvu, blkaddr, in nix_rx_flowkey_alg_cfg()
3553 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3560 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3566 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3572 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3579 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3586 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3593 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3600 rc = reserve_flowkey_alg_idx(rvu, blkaddr, flowkey_cfg); in nix_rx_flowkey_alg_cfg()
3613 int blkaddr, nixlf, err; in rvu_mbox_handler_nix_set_mac_addr() local
3616 err = nix_get_nixlf(rvu, pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_set_mac_addr()
3781 nix_config_link_credits(struct rvu *rvu, int blkaddr, int link, in nix_config_link_credits() argument
3795 nix_hw = get_nix_hw(rvu->hw, blkaddr); in nix_config_link_credits()
3813 sw_xoff = rvu_read64(rvu, blkaddr, NIX_AF_TL1X_SW_XOFF(schq)); in nix_config_link_credits()
3814 rvu_write64(rvu, blkaddr, in nix_config_link_credits()
3826 cfg = rvu_read64(rvu, blkaddr, in nix_config_link_credits()
3833 rvu_write64(rvu, blkaddr, NIX_AF_TX_LINKX_NORM_CREDIT(link), cfg); in nix_config_link_credits()
3841 rvu_write64(rvu, blkaddr, NIX_AF_TL1X_SW_XOFF(schq), 0); in nix_config_link_credits()
3857 int blkaddr, schq, link = -1; in rvu_mbox_handler_nix_set_hw_frs() local
3865 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_set_hw_frs()
3866 if (blkaddr < 0) in rvu_mbox_handler_nix_set_hw_frs()
3869 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_set_hw_frs()
3894 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq)); in rvu_mbox_handler_nix_set_hw_frs()
3898 rvu_write64(rvu, blkaddr, NIX_AF_SMQX_CFG(schq), cfg); in rvu_mbox_handler_nix_set_hw_frs()
3928 cfg = rvu_read64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link)); in rvu_mbox_handler_nix_set_hw_frs()
3932 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), cfg); in rvu_mbox_handler_nix_set_hw_frs()
3941 return nix_config_link_credits(rvu, blkaddr, link, pcifunc, in rvu_mbox_handler_nix_set_hw_frs()
3948 int nixlf, blkaddr, err; in rvu_mbox_handler_nix_set_rx_cfg() local
3951 err = nix_get_nixlf(rvu, req->hdr.pcifunc, &nixlf, &blkaddr); in rvu_mbox_handler_nix_set_rx_cfg()
3955 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf)); in rvu_mbox_handler_nix_set_rx_cfg()
3972 rvu_write64(rvu, blkaddr, NIX_AF_LFX_RX_CFG(nixlf), cfg); in rvu_mbox_handler_nix_set_rx_cfg()
3986 static void nix_link_config(struct rvu *rvu, int blkaddr, in nix_link_config() argument
4004 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), in nix_link_config()
4009 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), in nix_link_config()
4014 rvu_write64(rvu, blkaddr, NIX_AF_RX_LINKX_CFG(link), in nix_link_config()
4033 rvu_write64(rvu, blkaddr, in nix_link_config()
4045 rvu_write64(rvu, blkaddr, in nix_link_config()
4050 static int nix_calibrate_x2p(struct rvu *rvu, int blkaddr) in nix_calibrate_x2p() argument
4056 rvu_write64(rvu, blkaddr, NIX_AF_CFG, in nix_calibrate_x2p()
4057 rvu_read64(rvu, blkaddr, NIX_AF_CFG) | BIT_ULL(9)); in nix_calibrate_x2p()
4059 err = rvu_poll_reg(rvu, blkaddr, in nix_calibrate_x2p()
4066 status = rvu_read64(rvu, blkaddr, NIX_AF_STATUS); in nix_calibrate_x2p()
4086 rvu_write64(rvu, blkaddr, NIX_AF_CFG, in nix_calibrate_x2p()
4087 rvu_read64(rvu, blkaddr, NIX_AF_CFG) & ~BIT_ULL(9)); in nix_calibrate_x2p()
4136 static void rvu_nix_setup_capabilities(struct rvu *rvu, int blkaddr) in rvu_nix_setup_capabilities() argument
4141 hw_const = rvu_read64(rvu, blkaddr, NIX_AF_CONST1); in rvu_nix_setup_capabilities()
4162 int blkaddr = nix_hw->blkaddr; in rvu_nix_block_init() local
4167 block = &hw->block[blkaddr]; in rvu_nix_block_init()
4174 rvu_write64(rvu, blkaddr, NIX_AF_CFG, in rvu_nix_block_init()
4175 rvu_read64(rvu, blkaddr, NIX_AF_CFG) | 0x40ULL); in rvu_nix_block_init()
4178 rvu_write64(rvu, blkaddr, NIX_AF_PSE_CHANNEL_LEVEL, 0x01); in rvu_nix_block_init()
4184 cfg = rvu_read64(rvu, blkaddr, NIX_AF_SQM_DBG_CTL_STATUS); in rvu_nix_block_init()
4186 rvu_write64(rvu, blkaddr, NIX_AF_SQM_DBG_CTL_STATUS, cfg); in rvu_nix_block_init()
4191 err = nix_calibrate_x2p(rvu, blkaddr); in rvu_nix_block_init()
4196 rvu_nix_setup_capabilities(rvu, blkaddr); in rvu_nix_block_init()
4204 rvu_write64(rvu, blkaddr, NIX_AF_CINT_DELAY, 0x0ULL); in rvu_nix_block_init()
4207 rvu_write64(rvu, blkaddr, NIX_AF_SEB_CFG, 0x1ULL); in rvu_nix_block_init()
4209 if (is_block_implemented(hw, blkaddr)) { in rvu_nix_block_init()
4210 err = nix_setup_txschq(rvu, nix_hw, blkaddr); in rvu_nix_block_init()
4214 err = nix_setup_ipolicers(rvu, nix_hw, blkaddr); in rvu_nix_block_init()
4218 err = nix_af_mark_format_setup(rvu, nix_hw, blkaddr); in rvu_nix_block_init()
4222 err = nix_setup_mcast(rvu, nix_hw, blkaddr); in rvu_nix_block_init()
4231 nix_setup_lso(rvu, nix_hw, blkaddr); in rvu_nix_block_init()
4237 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OL2, in rvu_nix_block_init()
4240 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OIP4, in rvu_nix_block_init()
4243 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IIP4, in rvu_nix_block_init()
4246 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OIP6, in rvu_nix_block_init()
4249 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IIP6, in rvu_nix_block_init()
4252 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OTCP, in rvu_nix_block_init()
4255 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_ITCP, in rvu_nix_block_init()
4258 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OUDP, in rvu_nix_block_init()
4261 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IUDP, in rvu_nix_block_init()
4264 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OSCTP, in rvu_nix_block_init()
4267 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_ISCTP, in rvu_nix_block_init()
4275 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_CST_APAD0, in rvu_nix_block_init()
4280 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_CST_APAD1, in rvu_nix_block_init()
4291 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_ET(0), in rvu_nix_block_init()
4297 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_ET(1), in rvu_nix_block_init()
4305 err = nix_rx_flowkey_alg_cfg(rvu, blkaddr); in rvu_nix_block_init()
4315 nix_link_config(rvu, blkaddr, nix_hw); in rvu_nix_block_init()
4318 rvu_write64(rvu, blkaddr, NIX_AF_RX_CFG, BIT_ULL(0)); in rvu_nix_block_init()
4327 int blkaddr = 0, err; in rvu_nix_init() local
4335 blkaddr = rvu_get_next_nix_blkaddr(rvu, blkaddr); in rvu_nix_init()
4336 while (blkaddr) { in rvu_nix_init()
4339 nix_hw->blkaddr = blkaddr; in rvu_nix_init()
4343 blkaddr = rvu_get_next_nix_blkaddr(rvu, blkaddr); in rvu_nix_init()
4350 static void rvu_nix_block_freemem(struct rvu *rvu, int blkaddr, in rvu_nix_block_freemem() argument
4361 if (is_block_implemented(rvu->hw, blkaddr)) { in rvu_nix_block_freemem()
4362 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_nix_block_freemem()
4390 int blkaddr = 0; in rvu_nix_freemem() local
4392 blkaddr = rvu_get_next_nix_blkaddr(rvu, blkaddr); in rvu_nix_freemem()
4393 while (blkaddr) { in rvu_nix_freemem()
4394 block = &hw->block[blkaddr]; in rvu_nix_freemem()
4395 rvu_nix_block_freemem(rvu, blkaddr, block); in rvu_nix_freemem()
4396 blkaddr = rvu_get_next_nix_blkaddr(rvu, blkaddr); in rvu_nix_freemem()
4442 void rvu_nix_lf_teardown(struct rvu *rvu, u16 pcifunc, int blkaddr, int nixlf) in rvu_nix_lf_teardown() argument
4454 nix_rx_sync(rvu, blkaddr); in rvu_nix_lf_teardown()
4493 int blkaddr, pf; in rvu_nix_lf_ptp_tx_cfg() local
4501 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_nix_lf_ptp_tx_cfg()
4502 if (blkaddr < 0) in rvu_nix_lf_ptp_tx_cfg()
4505 block = &hw->block[blkaddr]; in rvu_nix_lf_ptp_tx_cfg()
4510 cfg = rvu_read64(rvu, blkaddr, NIX_AF_LFX_TX_CFG(nixlf)); in rvu_nix_lf_ptp_tx_cfg()
4517 rvu_write64(rvu, blkaddr, NIX_AF_LFX_TX_CFG(nixlf), cfg); in rvu_nix_lf_ptp_tx_cfg()
4541 int blkaddr, idx, f; in rvu_mbox_handler_nix_lso_format_cfg() local
4545 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_nix_lso_format_cfg()
4546 if (!pfvf->nixlf || blkaddr < 0) in rvu_mbox_handler_nix_lso_format_cfg()
4549 nix_hw = get_nix_hw(rvu->hw, blkaddr); in rvu_mbox_handler_nix_lso_format_cfg()
4556 reg = rvu_read64(rvu, blkaddr, in rvu_mbox_handler_nix_lso_format_cfg()
4578 rvu_write64(rvu, blkaddr, in rvu_mbox_handler_nix_lso_format_cfg()
4595 static void nix_config_rx_pkt_policer_precolor(struct rvu *rvu, int blkaddr) in nix_config_rx_pkt_policer_precolor() argument
4607 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_VLAN0_PCP_DEI, in nix_config_rx_pkt_policer_precolor()
4611 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_VLAN1_PCP_DEI, in nix_config_rx_pkt_policer_precolor()
4617 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OIP4_DSCP, in nix_config_rx_pkt_policer_precolor()
4621 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IIP4_DSCP, in nix_config_rx_pkt_policer_precolor()
4627 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_OIP6_DSCP, in nix_config_rx_pkt_policer_precolor()
4631 rvu_write64(rvu, blkaddr, NIX_AF_RX_DEF_IIP6_DSCP, in nix_config_rx_pkt_policer_precolor()
4659 struct nix_hw *nix_hw, int blkaddr) in nix_setup_ipolicers() argument
4666 cfg = rvu_read64(rvu, blkaddr, NIX_AF_CONST); in nix_setup_ipolicers()
4678 cfg = rvu_read64(rvu, blkaddr, NIX_AF_PL_CONST); in nix_setup_ipolicers()
4742 rvu_write64(rvu, blkaddr, NIX_AF_PL_TS, 19); in nix_setup_ipolicers()
4744 nix_config_rx_pkt_policer_precolor(rvu, blkaddr); in nix_setup_ipolicers()
4817 int blkaddr, layer, prof, idx, err; in rvu_mbox_handler_nix_bandprof_alloc() local
4825 err = nix_get_struct_ptrs(rvu, pcifunc, &nix_hw, &blkaddr); in rvu_mbox_handler_nix_bandprof_alloc()
4856 int blkaddr, layer, prof_idx, err; in nix_free_all_bandprof() local
4863 err = nix_get_struct_ptrs(rvu, pcifunc, &nix_hw, &blkaddr); in nix_free_all_bandprof()
4896 int blkaddr, layer, prof_idx, idx, err; in rvu_mbox_handler_nix_bandprof_free() local
4907 err = nix_get_struct_ptrs(rvu, pcifunc, &nix_hw, &blkaddr); in rvu_mbox_handler_nix_bandprof_free()
4988 int blkaddr, idx, rc; in rvu_nix_setup_ratelimit_aggr() local
4993 rc = nix_get_struct_ptrs(rvu, pcifunc, &nix_hw, &blkaddr); in rvu_nix_setup_ratelimit_aggr()
5184 int blkaddr, layer, err; in rvu_mbox_handler_nix_bandprof_get_hwinfo() local
5191 err = nix_get_struct_ptrs(rvu, req->hdr.pcifunc, &nix_hw, &blkaddr); in rvu_mbox_handler_nix_bandprof_get_hwinfo()
5207 tu = rvu_read64(rvu, blkaddr, NIX_AF_PL_TS) & GENMASK_ULL(9, 0); in rvu_mbox_handler_nix_bandprof_get_hwinfo()