Lines Matching refs:pcifunc
25 static int rvu_get_hwvf(struct rvu *rvu, int pcifunc);
31 static void __rvu_flr_handler(struct rvu *rvu, u16 pcifunc);
220 int rvu_get_lf(struct rvu *rvu, struct rvu_block *block, u16 pcifunc, u16 slot) in rvu_get_lf() argument
227 if (block->fn_map[lf] == pcifunc) { in rvu_get_lf()
248 int rvu_get_blkaddr(struct rvu *rvu, int blktype, u16 pcifunc) in rvu_get_blkaddr() argument
263 if (!pcifunc) { in rvu_get_blkaddr()
279 if (!pcifunc) { in rvu_get_blkaddr()
287 if (pcifunc & RVU_PFVF_FUNC_MASK) { in rvu_get_blkaddr()
289 devnum = rvu_get_hwvf(rvu, pcifunc); in rvu_get_blkaddr()
292 devnum = rvu_get_pf(pcifunc); in rvu_get_blkaddr()
337 struct rvu_block *block, u16 pcifunc, in rvu_update_rsrc_map() argument
352 if (pcifunc & RVU_PFVF_FUNC_MASK) { in rvu_update_rsrc_map()
354 devnum = rvu_get_hwvf(rvu, pcifunc); in rvu_update_rsrc_map()
357 devnum = rvu_get_pf(pcifunc); in rvu_update_rsrc_map()
360 block->fn_map[lf] = attach ? pcifunc : 0; in rvu_update_rsrc_map()
398 inline int rvu_get_pf(u16 pcifunc) in rvu_get_pf() argument
400 return (pcifunc >> RVU_PFVF_PF_SHIFT) & RVU_PFVF_PF_MASK; in rvu_get_pf()
415 static int rvu_get_hwvf(struct rvu *rvu, int pcifunc) in rvu_get_hwvf() argument
420 pf = rvu_get_pf(pcifunc); in rvu_get_hwvf()
421 func = pcifunc & RVU_PFVF_FUNC_MASK; in rvu_get_hwvf()
429 struct rvu_pfvf *rvu_get_pfvf(struct rvu *rvu, int pcifunc) in rvu_get_pfvf() argument
432 if (pcifunc & RVU_PFVF_FUNC_MASK) in rvu_get_pfvf()
433 return &rvu->hwvf[rvu_get_hwvf(rvu, pcifunc)]; in rvu_get_pfvf()
435 return &rvu->pf[rvu_get_pf(pcifunc)]; in rvu_get_pfvf()
438 static bool is_pf_func_valid(struct rvu *rvu, u16 pcifunc) in is_pf_func_valid() argument
443 pf = rvu_get_pf(pcifunc); in is_pf_func_valid()
447 if (!(pcifunc & RVU_PFVF_FUNC_MASK)) in is_pf_func_valid()
451 vf = (pcifunc & RVU_PFVF_FUNC_MASK) - 1; in is_pf_func_valid()
1256 bool is_pffunc_map_valid(struct rvu *rvu, u16 pcifunc, int blktype) in is_pffunc_map_valid() argument
1260 if (!is_pf_func_valid(rvu, pcifunc)) in is_pffunc_map_valid()
1263 pfvf = rvu_get_pfvf(rvu, pcifunc); in is_pffunc_map_valid()
1273 int pcifunc, int slot) in rvu_lookup_rsrc() argument
1277 val = ((u64)pcifunc << 24) | (slot << 16) | (1ULL << 13); in rvu_lookup_rsrc()
1293 static void rvu_detach_block(struct rvu *rvu, int pcifunc, int blktype) in rvu_detach_block() argument
1295 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_detach_block()
1301 blkaddr = rvu_get_blkaddr(rvu, blktype, pcifunc); in rvu_detach_block()
1306 rvu_nix_reset_mac(pfvf, pcifunc); in rvu_detach_block()
1315 lf = rvu_lookup_rsrc(rvu, block, pcifunc, slot); in rvu_detach_block()
1325 pcifunc, lf, false); in rvu_detach_block()
1336 u16 pcifunc) in rvu_detach_rsrcs() argument
1374 rvu_detach_block(rvu, pcifunc, block->type); in rvu_detach_rsrcs()
1385 return rvu_detach_rsrcs(rvu, detach, detach->hdr.pcifunc); in rvu_mbox_handler_detach_resources()
1388 int rvu_get_nix_blkaddr(struct rvu *rvu, u16 pcifunc) in rvu_get_nix_blkaddr() argument
1390 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_get_nix_blkaddr()
1394 pf = rvu_get_pfvf(rvu, pcifunc & ~RVU_PFVF_FUNC_MASK); in rvu_get_nix_blkaddr()
1397 if (is_pf_cgxmapped(rvu, rvu_get_pf(pcifunc))) { in rvu_get_nix_blkaddr()
1399 } else if (is_afvf(pcifunc)) { in rvu_get_nix_blkaddr()
1400 vf = pcifunc - 1; in rvu_get_nix_blkaddr()
1411 if (is_sdp_pfvf(pcifunc) && pf->sdp_info->node_id == 1) in rvu_get_nix_blkaddr()
1432 u16 pcifunc, struct rsrc_attach *attach) in rvu_get_attach_blkaddr() argument
1438 blkaddr = rvu_get_nix_blkaddr(rvu, pcifunc); in rvu_get_attach_blkaddr()
1458 static void rvu_attach_block(struct rvu *rvu, int pcifunc, int blktype, in rvu_attach_block() argument
1461 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_attach_block()
1471 blkaddr = rvu_get_attach_blkaddr(rvu, blktype, pcifunc, attach); in rvu_attach_block()
1485 cfg = (1ULL << 63) | (pcifunc << 8) | slot; in rvu_attach_block()
1489 pcifunc, lf, true); in rvu_attach_block()
1497 struct rsrc_attach *req, u16 pcifunc) in rvu_check_rsrc_availability() argument
1499 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_check_rsrc_availability()
1513 pcifunc); in rvu_check_rsrc_availability()
1520 pcifunc, req); in rvu_check_rsrc_availability()
1530 pcifunc); in rvu_check_rsrc_availability()
1540 pcifunc, req->sso, block->lf.max); in rvu_check_rsrc_availability()
1556 pcifunc, req->sso, block->lf.max); in rvu_check_rsrc_availability()
1571 pcifunc, req->timlfs, block->lf.max); in rvu_check_rsrc_availability()
1583 pcifunc, req); in rvu_check_rsrc_availability()
1590 pcifunc, req->cptlfs, block->lf.max); in rvu_check_rsrc_availability()
1613 attach->hdr.pcifunc, attach); in rvu_attach_from_same_block()
1617 num_lfs = rvu_get_rsrc_mapcount(rvu_get_pfvf(rvu, attach->hdr.pcifunc), in rvu_attach_from_same_block()
1627 u16 pcifunc = attach->hdr.pcifunc; in rvu_mbox_handler_attach_resources() local
1632 rvu_detach_rsrcs(rvu, NULL, pcifunc); in rvu_mbox_handler_attach_resources()
1637 err = rvu_check_rsrc_availability(rvu, attach, pcifunc); in rvu_mbox_handler_attach_resources()
1643 rvu_attach_block(rvu, pcifunc, BLKTYPE_NPA, 1, attach); in rvu_mbox_handler_attach_resources()
1646 rvu_attach_block(rvu, pcifunc, BLKTYPE_NIX, 1, attach); in rvu_mbox_handler_attach_resources()
1655 rvu_detach_block(rvu, pcifunc, BLKTYPE_SSO); in rvu_mbox_handler_attach_resources()
1656 rvu_attach_block(rvu, pcifunc, BLKTYPE_SSO, in rvu_mbox_handler_attach_resources()
1662 rvu_detach_block(rvu, pcifunc, BLKTYPE_SSOW); in rvu_mbox_handler_attach_resources()
1663 rvu_attach_block(rvu, pcifunc, BLKTYPE_SSOW, in rvu_mbox_handler_attach_resources()
1669 rvu_detach_block(rvu, pcifunc, BLKTYPE_TIM); in rvu_mbox_handler_attach_resources()
1670 rvu_attach_block(rvu, pcifunc, BLKTYPE_TIM, in rvu_mbox_handler_attach_resources()
1677 rvu_detach_block(rvu, pcifunc, BLKTYPE_CPT); in rvu_mbox_handler_attach_resources()
1678 rvu_attach_block(rvu, pcifunc, BLKTYPE_CPT, in rvu_mbox_handler_attach_resources()
1755 u16 pcifunc = req->hdr.pcifunc; in rvu_mbox_handler_msix_offset() local
1759 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_msix_offset()
1764 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_NPA], pcifunc, 0); in rvu_mbox_handler_msix_offset()
1768 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_msix_offset()
1772 lf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_msix_offset()
1778 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_SSO], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1785 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_SSOW], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1792 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_TIM], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1799 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_CPT0], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1806 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_CPT1], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1910 u16 pcifunc = req->hdr.pcifunc; in rvu_mbox_handler_vf_flr() local
1914 vf = pcifunc & RVU_PFVF_FUNC_MASK; in rvu_mbox_handler_vf_flr()
1916 RVU_PRIV_PFX_CFG(rvu_get_pf(pcifunc))); in rvu_mbox_handler_vf_flr()
1920 __rvu_flr_handler(rvu, pcifunc); in rvu_mbox_handler_vf_flr()
1942 u16 pcifunc = req->hdr.pcifunc; in rvu_mbox_handler_set_vf_perm() local
1948 if ((pcifunc & RVU_PFVF_FUNC_MASK) || is_afvf(pcifunc)) in rvu_mbox_handler_set_vf_perm()
1951 target = (pcifunc & ~RVU_PFVF_FUNC_MASK) | (req->vf + 1); in rvu_mbox_handler_set_vf_perm()
2008 rsp->hdr.pcifunc = req->pcifunc; \ in rvu_process_mbox_msg()
2026 otx2_reply_invalid_msg(mbox, devid, req->pcifunc, req->id); in rvu_process_mbox_msg()
2069 msg->pcifunc &= in __rvu_mbox_handler()
2071 msg->pcifunc |= (devid << RVU_PFVF_PF_SHIFT); in __rvu_mbox_handler()
2074 msg->pcifunc &= in __rvu_mbox_handler()
2076 msg->pcifunc |= (devid << RVU_PFVF_FUNC_SHIFT) + 1; in __rvu_mbox_handler()
2086 if (msg->pcifunc & RVU_PFVF_FUNC_MASK) in __rvu_mbox_handler()
2089 msg->id, rvu_get_pf(msg->pcifunc), in __rvu_mbox_handler()
2090 (msg->pcifunc & RVU_PFVF_FUNC_MASK) - 1); in __rvu_mbox_handler()
2487 static void rvu_blklf_teardown(struct rvu *rvu, u16 pcifunc, u8 blkaddr) in rvu_blklf_teardown() argument
2494 num_lfs = rvu_get_rsrc_mapcount(rvu_get_pfvf(rvu, pcifunc), in rvu_blklf_teardown()
2499 lf = rvu_get_lf(rvu, block, pcifunc, slot); in rvu_blklf_teardown()
2505 rvu_nix_lf_teardown(rvu, pcifunc, block->addr, lf); in rvu_blklf_teardown()
2507 rvu_npa_lf_teardown(rvu, pcifunc, lf); in rvu_blklf_teardown()
2510 rvu_cpt_lf_teardown(rvu, pcifunc, lf, slot); in rvu_blklf_teardown()
2520 static void __rvu_flr_handler(struct rvu *rvu, u16 pcifunc) in __rvu_flr_handler() argument
2528 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NIX0); in __rvu_flr_handler()
2529 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NIX1); in __rvu_flr_handler()
2530 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_CPT0); in __rvu_flr_handler()
2531 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_CPT1); in __rvu_flr_handler()
2532 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_TIM); in __rvu_flr_handler()
2533 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_SSOW); in __rvu_flr_handler()
2534 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_SSO); in __rvu_flr_handler()
2535 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NPA); in __rvu_flr_handler()
2536 rvu_reset_lmt_map_tbl(rvu, pcifunc); in __rvu_flr_handler()
2537 rvu_detach_rsrcs(rvu, NULL, pcifunc); in __rvu_flr_handler()
2542 rvu_npc_free_mcam_entries(rvu, pcifunc, -1); in __rvu_flr_handler()
2568 u16 pcifunc, numvfs, vf; in rvu_flr_handler() local
2580 pcifunc = pf << RVU_PFVF_PF_SHIFT; in rvu_flr_handler()
2583 __rvu_flr_handler(rvu, (pcifunc | (vf + 1))); in rvu_flr_handler()
2585 __rvu_flr_handler(rvu, pcifunc); in rvu_flr_handler()