| /linux/drivers/net/ethernet/marvell/octeontx2/af/ |
| H A D | rvu_cgx.c | 26 *otx2_mbox_alloc_msg_ ## _fn_name(struct rvu *rvu, int devid) \ 31 &rvu->afpf_wq_info.mbox_up, devid, sizeof(struct _req_type), \ 37 trace_otx2_msg_alloc(rvu->pdev, _id, sizeof(*req), 0); \ 44 bool is_mac_feature_supported(struct rvu *rvu, int pf, int feature) in is_mac_feature_supported() argument 49 if (!is_pf_cgxmapped(rvu, pf)) in is_mac_feature_supported() 52 rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_id, &lmac_id); in is_mac_feature_supported() 53 cgxd = rvu_cgx_pdata(cgx_id, rvu); in is_mac_feature_supported() 58 #define CGX_OFFSET(x) ((x) * rvu->hw->lmac_per_cgx) 60 static u64 cgxlmac_to_pfmap(struct rvu *rvu, u8 cgx_id, u8 lmac_id) in cgxlmac_to_pfmap() argument 62 return rvu->cgxlmac2pf_map[CGX_OFFSET(cgx_id) + lmac_id]; in cgxlmac_to_pfmap() [all …]
|
| H A D | rvu_cpt.c | 35 reg = rvu_read64(rvu, blkaddr, CPT_AF_EXEX_STS(e)); \ 50 static u16 cpt_max_engines_get(struct rvu *rvu) in cpt_max_engines_get() argument 55 reg = rvu_read64(rvu, BLKADDR_CPT0, CPT_AF_CONSTANTS1); in cpt_max_engines_get() 66 static int cpt_10k_flt_nvecs_get(struct rvu *rvu, u16 max_engs) in cpt_10k_flt_nvecs_get() argument 73 dev_warn_once(rvu->dev, "flt_vecs:%d exceeds the max vectors:%d\n", in cpt_10k_flt_nvecs_get() 84 struct rvu *rvu = block->rvu; in cpt_af_flt_intr_handler() local 90 reg = rvu_read64(rvu, blkaddr, CPT_AF_FLTX_INT(vec)); in cpt_af_flt_intr_handler() 91 dev_err_ratelimited(rvu->dev, "Received CPTAF FLT%d irq : 0x%llx", vec, reg); in cpt_af_flt_intr_handler() 106 grp = rvu_read64(rvu, blkaddr, CPT_AF_EXEX_CTL2(eng)) & 0xFF; in cpt_af_flt_intr_handler() 108 rvu_write64(rvu, blkaddr, CPT_AF_EXEX_CTL2(eng), 0x0); in cpt_af_flt_intr_handler() [all …]
|
| H A D | rvu_devlink.c | 30 static bool rvu_common_request_irq(struct rvu *rvu, int offset, in rvu_common_request_irq() argument 33 struct rvu_devlink *rvu_dl = rvu->rvu_dl; in rvu_common_request_irq() 36 sprintf(&rvu->irq_name[offset * NAME_SIZE], "%s", name); in rvu_common_request_irq() 37 rc = request_irq(pci_irq_vector(rvu->pdev, offset), fn, 0, in rvu_common_request_irq() 38 &rvu->irq_name[offset * NAME_SIZE], rvu_dl); in rvu_common_request_irq() 40 dev_warn(rvu->dev, "Failed to register %s irq\n", name); in rvu_common_request_irq() 42 rvu->irq_allocated[offset] = true; in rvu_common_request_irq() 44 return rvu->irq_allocated[offset]; in rvu_common_request_irq() 61 struct rvu *rvu; in rvu_nix_af_rvu_intr_handler() local 65 rvu = rvu_dl->rvu; in rvu_nix_af_rvu_intr_handler() [all …]
|
| H A D | rvu_rep.c | 19 *otx2_mbox_alloc_msg_ ## _fn_name(struct rvu *rvu, int devid) \ 24 &rvu->afpf_wq_info.mbox_up, devid, sizeof(struct _req_type), \ 36 static int rvu_rep_up_notify(struct rvu *rvu, struct rep_event *event) in rvu_rep_up_notify() argument 38 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, event->pcifunc); in rvu_rep_up_notify() 42 pf = rvu_get_pf(rvu->pdev, event->pcifunc); in rvu_rep_up_notify() 47 mutex_lock(&rvu->mbox_lock); in rvu_rep_up_notify() 48 msg = otx2_mbox_alloc_msg_rep_event_up_notify(rvu, pf); in rvu_rep_up_notify() 50 mutex_unlock(&rvu->mbox_lock); in rvu_rep_up_notify() 59 otx2_mbox_wait_for_zero(&rvu->afpf_wq_info.mbox_up, pf); in rvu_rep_up_notify() 61 otx2_mbox_msg_send_up(&rvu->afpf_wq_info.mbox_up, pf); in rvu_rep_up_notify() [all …]
|
| H A D | rvu_npc.c | 35 static void npc_mcam_free_all_entries(struct rvu *rvu, struct npc_mcam *mcam, 37 static void npc_mcam_free_all_counters(struct rvu *rvu, struct npc_mcam *mcam, 50 bool is_npc_interface_valid(struct rvu *rvu, u8 intf) in is_npc_interface_valid() argument 52 struct rvu_hwinfo *hw = rvu->hw; in is_npc_interface_valid() 57 int rvu_npc_get_tx_nibble_cfg(struct rvu *rvu, u64 nibble_ena) in rvu_npc_get_tx_nibble_cfg() argument 62 if (is_rvu_96xx_B0(rvu)) in rvu_npc_get_tx_nibble_cfg() 67 void rvu_npc_set_pkind(struct rvu *rvu, int pkind, struct rvu_pfvf *pfvf) in rvu_npc_set_pkind() argument 72 blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NPC, 0); in rvu_npc_set_pkind() 78 rvu_write64(rvu, blkaddr, NPC_AF_PKINDX_CPI_DEFX(pkind, 0), val); in rvu_npc_set_pkind() 81 int rvu_npc_get_pkind(struct rvu *rvu, u16 pf) in rvu_npc_get_pkind() argument [all …]
|
| H A D | rvu_cn10k.c | 23 static int lmtst_map_table_ops(struct rvu *rvu, u32 index, u64 *val, in lmtst_map_table_ops() argument 30 tbl_base = rvu_read64(rvu, BLKADDR_APR, APR_AF_LMT_MAP_BASE); in lmtst_map_table_ops() 31 cfg = rvu_read64(rvu, BLKADDR_APR, APR_AF_LMT_CFG); in lmtst_map_table_ops() 37 dev_err(rvu->dev, "Failed to setup lmt map table mapping!!\n"); in lmtst_map_table_ops() 57 rvu_write64(rvu, BLKADDR_APR, APR_AF_LMT_CTL, BIT_ULL(0)); in lmtst_map_table_ops() 58 rvu_read64(rvu, BLKADDR_APR, APR_AF_LMT_CTL); in lmtst_map_table_ops() 59 rvu_write64(rvu, BLKADDR_APR, APR_AF_LMT_CTL, 0x00); in lmtst_map_table_ops() 67 static u32 rvu_get_lmtst_tbl_index(struct rvu *rvu, u16 pcifunc) in rvu_get_lmtst_tbl_index() argument 69 return ((rvu_get_pf(rvu->pdev, pcifunc) * LMT_MAX_VFS) + in rvu_get_lmtst_tbl_index() 73 static int rvu_get_lmtaddr(struct rvu *rvu, u16 pcifunc, in rvu_get_lmtaddr() argument [all …]
|
| H A D | rvu_nix.c | 20 static void nix_free_tx_vtag_entries(struct rvu *rvu, u16 pcifunc); 21 static int rvu_nix_get_bpid(struct rvu *rvu, struct nix_bp_cfg_req *req, 23 static int nix_update_mce_rule(struct rvu *rvu, u16 pcifunc, 25 static int nix_setup_ipolicers(struct rvu *rvu, 27 static void nix_ipolicer_freemem(struct rvu *rvu, struct nix_hw *nix_hw); 30 static int nix_free_all_bandprof(struct rvu *rvu, u16 pcifunc); 31 static void nix_clear_ratelimit_aggr(struct rvu *rvu, struct nix_hw *nix_hw, 34 static int nix_get_tx_link(struct rvu *rvu, u16 pcifunc); 91 int rvu_get_next_nix_blkaddr(struct rvu *rvu, int blkaddr) in rvu_get_next_nix_blkaddr() argument 97 return rvu->nix_blkaddr[blkaddr]; in rvu_get_next_nix_blkaddr() [all …]
|
| H A D | rvu_switch.c | 11 void rvu_switch_enable_lbk_link(struct rvu *rvu, u16 pcifunc, bool enable) in rvu_switch_enable_lbk_link() argument 13 struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_switch_enable_lbk_link() 16 nix_hw = get_nix_hw(rvu->hw, pfvf->nix_blkaddr); in rvu_switch_enable_lbk_link() 18 rvu_nix_tx_tl2_cfg(rvu, pfvf->nix_blkaddr, pcifunc, in rvu_switch_enable_lbk_link() 22 static int rvu_switch_install_rx_rule(struct rvu *rvu, u16 pcifunc, in rvu_switch_install_rx_rule() argument 29 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_switch_install_rx_rule() 48 return rvu_mbox_handler_npc_install_flow(rvu, &req, &rsp); in rvu_switch_install_rx_rule() 51 static int rvu_switch_install_tx_rule(struct rvu *rvu, u16 pcifunc, u16 entry) in rvu_switch_install_tx_rule() argument 58 pfvf = rvu_get_pfvf(rvu, pcifunc); in rvu_switch_install_tx_rule() 66 rvu_switch_enable_lbk_link(rvu, pcifunc, true); in rvu_switch_install_tx_rule() [all …]
|
| H A D | mcs_rvu_if.c | 19 *otx2_mbox_alloc_msg_ ## _fn_name(struct rvu *rvu, int devid) \ 24 &rvu->afpf_wq_info.mbox_up, devid, sizeof(struct _req_type), \ 36 void rvu_mcs_ptp_cfg(struct rvu *rvu, u8 rpm_id, u8 lmac_id, bool ena) in rvu_mcs_ptp_cfg() argument 42 if (!rvu->mcs_blk_cnt) in rvu_mcs_ptp_cfg() 51 if (rvu->mcs_blk_cnt > 1) { in rvu_mcs_ptp_cfg() 63 port = (rpm_id * rvu->hw->lmac_per_cgx) + lmac_id; in rvu_mcs_ptp_cfg() 72 int rvu_mbox_handler_mcs_set_lmac_mode(struct rvu *rvu, in rvu_mbox_handler_mcs_set_lmac_mode() argument 78 if (req->mcs_id >= rvu->mcs_blk_cnt) in rvu_mbox_handler_mcs_set_lmac_mode() 93 struct rvu *rvu = mcs->rvu; in mcs_add_intr_wq_entry() local 98 pfvf = &mcs->vf[rvu_get_hwvf(rvu, pcifunc)]; in mcs_add_intr_wq_entry() [all …]
|
| H A D | rvu_npc_fs.c | 62 bool npc_is_feature_supported(struct rvu *rvu, u64 features, u8 intf) in npc_is_feature_supported() argument 64 struct npc_mcam *mcam = &rvu->hw->mcam; in npc_is_feature_supported() 86 static void npc_set_kw_masks(struct rvu *rvu, struct npc_mcam *mcam, u8 type, in npc_set_kw_masks() argument 93 if (is_cn20k(rvu->pdev)) { in npc_set_kw_masks() 148 static bool npc_is_field_present(struct rvu *rvu, enum key_fields type, u8 intf) in npc_is_field_present() argument 150 struct npc_mcam *mcam = &rvu->hw->mcam; in npc_is_field_present() 167 static void npc_set_layer_mdata(struct rvu *rvu, in npc_set_layer_mdata() argument 178 if (is_cn20k(rvu->pdev)) in npc_set_layer_mdata() 212 static bool npc_check_overlap(struct rvu *rvu, int blkaddr, in npc_check_overlap() argument 215 struct npc_mcam *mcam = &rvu->hw->mcam; in npc_check_overlap() [all …]
|
| H A D | rvu_sdp.c | 20 bool is_sdp_pfvf(struct rvu *rvu, u16 pcifunc) in is_sdp_pfvf() argument 22 u16 pf = rvu_get_pf(rvu->pdev, pcifunc); in is_sdp_pfvf() 37 bool is_sdp_pf(struct rvu *rvu, u16 pcifunc) in is_sdp_pf() argument 39 return (is_sdp_pfvf(rvu, pcifunc) && in is_sdp_pf() 44 bool is_sdp_vf(struct rvu *rvu, u16 pcifunc) in is_sdp_vf() argument 47 return (rvu->vf_devid == RVU_SDP_VF_DEVID); in is_sdp_vf() 49 return (is_sdp_pfvf(rvu, pcifunc) && in is_sdp_vf() 53 int rvu_sdp_init(struct rvu *rvu) in rvu_sdp_init() argument 59 if (rvu->fwdata && rvu->fwdata->channel_data.valid) { in rvu_sdp_init() 61 pfvf = &rvu->pf[sdp_pf_num[0]]; in rvu_sdp_init() [all …]
|
| H A D | ptp.c | 99 static bool is_tstmp_atomic_update_supported(struct rvu *rvu) in is_tstmp_atomic_update_supported() argument 101 struct ptp *ptp = rvu->ptp; in is_tstmp_atomic_update_supported() 103 if (is_rvu_otx2(rvu)) in is_tstmp_atomic_update_supported() 367 void ptp_start(struct rvu *rvu, u64 sclk, u32 ext_clk_freq, u32 extts) in ptp_start() argument 369 struct ptp *ptp = rvu->ptp; in ptp_start() 388 if (is_tstmp_atomic_update_supported(rvu)) { in ptp_start() 619 int rvu_mbox_handler_ptp_op(struct rvu *rvu, struct ptp_req *req, in rvu_mbox_handler_ptp_op() argument 631 if (!rvu->ptp) in rvu_mbox_handler_ptp_op() 636 err = ptp_adjfine(rvu->ptp, req->scaled_ppm); in rvu_mbox_handler_ptp_op() 639 err = ptp_get_clock(rvu->ptp, &rsp->clk); in rvu_mbox_handler_ptp_op() [all …]
|
| H A D | rvu_devlink.h | 72 struct rvu *rvu; member 79 int rvu_register_dl(struct rvu *rvu); 80 void rvu_unregister_dl(struct rvu *rvu);
|
| H A D | ptp.h | 26 struct rvu; 29 void ptp_start(struct rvu *rvu, u64 sclk, u32 ext_clk_freq, u32 extts);
|
| H A D | rvu_reg.h | 642 if (rvu->hw->npc_ext_set) \ 650 if (rvu->hw->npc_ext_set) \ 658 if (rvu->hw->npc_ext_set) \ 666 if (rvu->hw->npc_ext_set) \ 674 if (rvu->hw->npc_ext_set) \ 682 if (rvu->hw->npc_ext_set) \ 690 if (rvu->hw->npc_ext_set) \ 698 if (rvu->hw->npc_ext_set) \
|
| H A D | mcs.h | 150 void *rvu; member
|
| /linux/drivers/net/ethernet/marvell/octeontx2/af/cn20k/ |
| H A D | npc.c | 295 static int npc_vidx_maps_del_entry(struct rvu *rvu, u16 vidx, u16 *old_midx) in npc_vidx_maps_del_entry() argument 301 dev_err(rvu->dev, in npc_vidx_maps_del_entry() 311 dev_err(rvu->dev, in npc_vidx_maps_del_entry() 319 dev_err(rvu->dev, in npc_vidx_maps_del_entry() 331 static int npc_vidx_maps_modify(struct rvu *rvu, u16 vidx, u16 new_midx) in npc_vidx_maps_modify() argument 338 dev_err(rvu->dev, in npc_vidx_maps_modify() 346 dev_err(rvu->dev, in npc_vidx_maps_modify() 357 dev_err(rvu->dev, in npc_vidx_maps_modify() 365 dev_err(rvu->dev, in npc_vidx_maps_modify() 375 dev_err(rvu->dev, in npc_vidx_maps_modify() [all …]
|
| H A D | npc.h | 25 rvu_write64(rvu, BLKADDR_NPC, \ 29 rvu_read64(rvu, BLKADDR_NPC, NPC_AF_INTFX_KEX_CFG(intf)) 32 rvu_read64(rvu, BLKADDR_NPC, \ 36 rvu_write64(rvu, BLKADDR_NPC, \ 40 rvu_read64(rvu, BLKADDR_NPC, \ 293 struct rvu; 296 int npc_cn20k_init(struct rvu *rvu); 297 void npc_cn20k_deinit(struct rvu *rvu); 299 void npc_cn20k_subbank_calc_free(struct rvu *rvu, int *x2_free, 302 int npc_cn20k_ref_idx_alloc(struct rvu *rvu, int pcifunc, int key_type, [all …]
|
| H A D | api.h | 20 int cn20k_rvu_mbox_init(struct rvu *rvu, int type, int num); 21 int cn20k_rvu_get_mbox_regions(struct rvu *rvu, void **mbox_addr, 23 void cn20k_free_mbox_memory(struct rvu *rvu); 24 int cn20k_register_afpf_mbox_intr(struct rvu *rvu); 25 int cn20k_register_afvf_mbox_intr(struct rvu *rvu, int pf_vec_start); 26 void cn20k_rvu_enable_mbox_intr(struct rvu *rvu); 27 void cn20k_rvu_unregister_interrupts(struct rvu *rvu); 30 void cn20k_rvu_enable_afvf_intr(struct rvu *rvu, int vfs); 31 void cn20k_rvu_disable_afvf_intr(struct rvu *rvu, int vfs);
|
| H A D | debugfs.c | 153 struct rvu *rvu; in npc_mcam_default_show() local 158 rvu = s->private; in npc_mcam_default_show() 168 rc = npc_cn20k_dft_rules_idx_get(rvu, pcifunc, &ptr[0], in npc_mcam_default_show() 249 int npc_cn20k_debugfs_init(struct rvu *rvu) in npc_cn20k_debugfs_init() argument 253 debugfs_create_file("mcam_layout", 0444, rvu->rvu_dbg.npc, in npc_cn20k_debugfs_init() 256 debugfs_create_file("mcam_default", 0444, rvu->rvu_dbg.npc, in npc_cn20k_debugfs_init() 257 rvu, &npc_mcam_default_fops); in npc_cn20k_debugfs_init() 259 debugfs_create_file("vidx2idx", 0444, rvu->rvu_dbg.npc, in npc_cn20k_debugfs_init() 262 debugfs_create_file("idx2vidx", 0444, rvu->rvu_dbg.npc, in npc_cn20k_debugfs_init() 265 debugfs_create_file("defrag", 0444, rvu->rvu_dbg.npc, in npc_cn20k_debugfs_init() [all …]
|