Lines Matching refs:pcifunc

31 static void __rvu_flr_handler(struct rvu *rvu, u16 pcifunc);
225 int rvu_get_lf(struct rvu *rvu, struct rvu_block *block, u16 pcifunc, u16 slot) in rvu_get_lf() argument
232 if (block->fn_map[lf] == pcifunc) { in rvu_get_lf()
253 int rvu_get_blkaddr(struct rvu *rvu, int blktype, u16 pcifunc) in rvu_get_blkaddr() argument
268 if (!pcifunc) { in rvu_get_blkaddr()
284 if (!pcifunc) { in rvu_get_blkaddr()
292 if (pcifunc & RVU_PFVF_FUNC_MASK) { in rvu_get_blkaddr()
294 devnum = rvu_get_hwvf(rvu, pcifunc); in rvu_get_blkaddr()
297 devnum = rvu_get_pf(pcifunc); in rvu_get_blkaddr()
342 struct rvu_block *block, u16 pcifunc, in rvu_update_rsrc_map() argument
357 if (pcifunc & RVU_PFVF_FUNC_MASK) { in rvu_update_rsrc_map()
359 devnum = rvu_get_hwvf(rvu, pcifunc); in rvu_update_rsrc_map()
362 devnum = rvu_get_pf(pcifunc); in rvu_update_rsrc_map()
365 block->fn_map[lf] = attach ? pcifunc : 0; in rvu_update_rsrc_map()
403 inline int rvu_get_pf(u16 pcifunc) in rvu_get_pf() argument
405 return (pcifunc >> RVU_PFVF_PF_SHIFT) & RVU_PFVF_PF_MASK; in rvu_get_pf()
420 int rvu_get_hwvf(struct rvu *rvu, int pcifunc) in rvu_get_hwvf() argument
425 pf = rvu_get_pf(pcifunc); in rvu_get_hwvf()
426 func = pcifunc & RVU_PFVF_FUNC_MASK; in rvu_get_hwvf()
434 struct rvu_pfvf *rvu_get_pfvf(struct rvu *rvu, int pcifunc) in rvu_get_pfvf() argument
437 if (pcifunc & RVU_PFVF_FUNC_MASK) in rvu_get_pfvf()
438 return &rvu->hwvf[rvu_get_hwvf(rvu, pcifunc)]; in rvu_get_pfvf()
440 return &rvu->pf[rvu_get_pf(pcifunc)]; in rvu_get_pfvf()
443 static bool is_pf_func_valid(struct rvu *rvu, u16 pcifunc) in is_pf_func_valid() argument
448 pf = rvu_get_pf(pcifunc); in is_pf_func_valid()
452 if (!(pcifunc & RVU_PFVF_FUNC_MASK)) in is_pf_func_valid()
456 vf = (pcifunc & RVU_PFVF_FUNC_MASK) - 1; in is_pf_func_valid()
1287 bool is_pffunc_map_valid(struct rvu *rvu, u16 pcifunc, int blktype) in is_pffunc_map_valid() argument
1291 if (!is_pf_func_valid(rvu, pcifunc)) in is_pffunc_map_valid()
1294 pfvf = rvu_get_pfvf(rvu, pcifunc); in is_pffunc_map_valid()
1304 int pcifunc, int slot) in rvu_lookup_rsrc() argument
1308 val = ((u64)pcifunc << 24) | (slot << 16) | (1ULL << 13); in rvu_lookup_rsrc()
1324 int rvu_get_blkaddr_from_slot(struct rvu *rvu, int blktype, u16 pcifunc, in rvu_get_blkaddr_from_slot() argument
1327 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_get_blkaddr_from_slot()
1378 static void rvu_detach_block(struct rvu *rvu, int pcifunc, int blktype) in rvu_detach_block() argument
1380 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_detach_block()
1386 blkaddr = rvu_get_blkaddr(rvu, blktype, pcifunc); in rvu_detach_block()
1391 rvu_nix_reset_mac(pfvf, pcifunc); in rvu_detach_block()
1400 lf = rvu_lookup_rsrc(rvu, block, pcifunc, slot); in rvu_detach_block()
1410 pcifunc, lf, false); in rvu_detach_block()
1421 u16 pcifunc) in rvu_detach_rsrcs() argument
1459 rvu_detach_block(rvu, pcifunc, block->type); in rvu_detach_rsrcs()
1470 return rvu_detach_rsrcs(rvu, detach, detach->hdr.pcifunc); in rvu_mbox_handler_detach_resources()
1473 int rvu_get_nix_blkaddr(struct rvu *rvu, u16 pcifunc) in rvu_get_nix_blkaddr() argument
1475 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_get_nix_blkaddr()
1479 pf = rvu_get_pfvf(rvu, pcifunc & ~RVU_PFVF_FUNC_MASK); in rvu_get_nix_blkaddr()
1482 if (is_pf_cgxmapped(rvu, rvu_get_pf(pcifunc))) { in rvu_get_nix_blkaddr()
1484 } else if (is_afvf(pcifunc)) { in rvu_get_nix_blkaddr()
1485 vf = pcifunc - 1; in rvu_get_nix_blkaddr()
1496 if (is_sdp_pfvf(pcifunc) && pf->sdp_info->node_id == 1) in rvu_get_nix_blkaddr()
1517 u16 pcifunc, struct rsrc_attach *attach) in rvu_get_attach_blkaddr() argument
1523 blkaddr = rvu_get_nix_blkaddr(rvu, pcifunc); in rvu_get_attach_blkaddr()
1543 static void rvu_attach_block(struct rvu *rvu, int pcifunc, int blktype, in rvu_attach_block() argument
1546 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_attach_block()
1556 blkaddr = rvu_get_attach_blkaddr(rvu, blktype, pcifunc, attach); in rvu_attach_block()
1570 cfg = (1ULL << 63) | (pcifunc << 8) | slot; in rvu_attach_block()
1574 pcifunc, lf, true); in rvu_attach_block()
1582 struct rsrc_attach *req, u16 pcifunc) in rvu_check_rsrc_availability() argument
1584 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_check_rsrc_availability()
1598 pcifunc); in rvu_check_rsrc_availability()
1605 pcifunc, req); in rvu_check_rsrc_availability()
1615 pcifunc); in rvu_check_rsrc_availability()
1625 pcifunc, req->sso, block->lf.max); in rvu_check_rsrc_availability()
1641 pcifunc, req->sso, block->lf.max); in rvu_check_rsrc_availability()
1656 pcifunc, req->timlfs, block->lf.max); in rvu_check_rsrc_availability()
1668 pcifunc, req); in rvu_check_rsrc_availability()
1675 pcifunc, req->cptlfs, block->lf.max); in rvu_check_rsrc_availability()
1698 attach->hdr.pcifunc, attach); in rvu_attach_from_same_block()
1702 num_lfs = rvu_get_rsrc_mapcount(rvu_get_pfvf(rvu, attach->hdr.pcifunc), in rvu_attach_from_same_block()
1712 u16 pcifunc = attach->hdr.pcifunc; in rvu_mbox_handler_attach_resources() local
1717 rvu_detach_rsrcs(rvu, NULL, pcifunc); in rvu_mbox_handler_attach_resources()
1722 err = rvu_check_rsrc_availability(rvu, attach, pcifunc); in rvu_mbox_handler_attach_resources()
1728 rvu_attach_block(rvu, pcifunc, BLKTYPE_NPA, 1, attach); in rvu_mbox_handler_attach_resources()
1731 rvu_attach_block(rvu, pcifunc, BLKTYPE_NIX, 1, attach); in rvu_mbox_handler_attach_resources()
1740 rvu_detach_block(rvu, pcifunc, BLKTYPE_SSO); in rvu_mbox_handler_attach_resources()
1741 rvu_attach_block(rvu, pcifunc, BLKTYPE_SSO, in rvu_mbox_handler_attach_resources()
1747 rvu_detach_block(rvu, pcifunc, BLKTYPE_SSOW); in rvu_mbox_handler_attach_resources()
1748 rvu_attach_block(rvu, pcifunc, BLKTYPE_SSOW, in rvu_mbox_handler_attach_resources()
1754 rvu_detach_block(rvu, pcifunc, BLKTYPE_TIM); in rvu_mbox_handler_attach_resources()
1755 rvu_attach_block(rvu, pcifunc, BLKTYPE_TIM, in rvu_mbox_handler_attach_resources()
1762 rvu_detach_block(rvu, pcifunc, BLKTYPE_CPT); in rvu_mbox_handler_attach_resources()
1763 rvu_attach_block(rvu, pcifunc, BLKTYPE_CPT, in rvu_mbox_handler_attach_resources()
1840 u16 pcifunc = req->hdr.pcifunc; in rvu_mbox_handler_msix_offset() local
1844 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_mbox_handler_msix_offset()
1849 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_NPA], pcifunc, 0); in rvu_mbox_handler_msix_offset()
1853 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, pcifunc); in rvu_mbox_handler_msix_offset()
1857 lf = rvu_get_lf(rvu, &hw->block[blkaddr], pcifunc, 0); in rvu_mbox_handler_msix_offset()
1863 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_SSO], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1870 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_SSOW], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1877 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_TIM], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1884 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_CPT0], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1891 lf = rvu_get_lf(rvu, &hw->block[BLKADDR_CPT1], pcifunc, slot); in rvu_mbox_handler_msix_offset()
1995 u16 pcifunc = req->hdr.pcifunc; in rvu_mbox_handler_vf_flr() local
1999 vf = pcifunc & RVU_PFVF_FUNC_MASK; in rvu_mbox_handler_vf_flr()
2001 RVU_PRIV_PFX_CFG(rvu_get_pf(pcifunc))); in rvu_mbox_handler_vf_flr()
2005 __rvu_flr_handler(rvu, pcifunc); in rvu_mbox_handler_vf_flr()
2028 u16 pcifunc = req->hdr.pcifunc; in rvu_mbox_handler_set_vf_perm() local
2034 if ((pcifunc & RVU_PFVF_FUNC_MASK) || is_afvf(pcifunc)) in rvu_mbox_handler_set_vf_perm()
2037 target = (pcifunc & ~RVU_PFVF_FUNC_MASK) | (req->vf + 1); in rvu_mbox_handler_set_vf_perm()
2094 rsp->hdr.pcifunc = req->pcifunc; \ in rvu_process_mbox_msg()
2112 otx2_reply_invalid_msg(mbox, devid, req->pcifunc, req->id); in rvu_process_mbox_msg()
2155 msg->pcifunc &= in __rvu_mbox_handler()
2157 msg->pcifunc |= (devid << RVU_PFVF_PF_SHIFT); in __rvu_mbox_handler()
2160 msg->pcifunc &= in __rvu_mbox_handler()
2162 msg->pcifunc |= (devid << RVU_PFVF_FUNC_SHIFT) + 1; in __rvu_mbox_handler()
2172 if (msg->pcifunc & RVU_PFVF_FUNC_MASK) in __rvu_mbox_handler()
2175 msg->id, rvu_get_pf(msg->pcifunc), in __rvu_mbox_handler()
2176 (msg->pcifunc & RVU_PFVF_FUNC_MASK) - 1); in __rvu_mbox_handler()
2541 static void rvu_blklf_teardown(struct rvu *rvu, u16 pcifunc, u8 blkaddr) in rvu_blklf_teardown() argument
2548 num_lfs = rvu_get_rsrc_mapcount(rvu_get_pfvf(rvu, pcifunc), in rvu_blklf_teardown()
2553 lf = rvu_get_lf(rvu, block, pcifunc, slot); in rvu_blklf_teardown()
2559 rvu_nix_lf_teardown(rvu, pcifunc, block->addr, lf); in rvu_blklf_teardown()
2561 rvu_npa_lf_teardown(rvu, pcifunc, lf); in rvu_blklf_teardown()
2564 rvu_cpt_lf_teardown(rvu, pcifunc, block->addr, lf, in rvu_blklf_teardown()
2575 static void __rvu_flr_handler(struct rvu *rvu, u16 pcifunc) in __rvu_flr_handler() argument
2578 rvu_npc_exact_reset(rvu, pcifunc); in __rvu_flr_handler()
2586 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NIX0); in __rvu_flr_handler()
2587 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NIX1); in __rvu_flr_handler()
2588 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_CPT0); in __rvu_flr_handler()
2589 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_CPT1); in __rvu_flr_handler()
2590 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_TIM); in __rvu_flr_handler()
2591 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_SSOW); in __rvu_flr_handler()
2592 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_SSO); in __rvu_flr_handler()
2593 rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NPA); in __rvu_flr_handler()
2594 rvu_reset_lmt_map_tbl(rvu, pcifunc); in __rvu_flr_handler()
2595 rvu_detach_rsrcs(rvu, NULL, pcifunc); in __rvu_flr_handler()
2600 rvu_npc_free_mcam_entries(rvu, pcifunc, -1); in __rvu_flr_handler()
2626 u16 pcifunc, numvfs, vf; in rvu_flr_handler() local
2638 pcifunc = pf << RVU_PFVF_PF_SHIFT; in rvu_flr_handler()
2641 __rvu_flr_handler(rvu, (pcifunc | (vf + 1))); in rvu_flr_handler()
2643 __rvu_flr_handler(rvu, pcifunc); in rvu_flr_handler()