| /linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
| H A D | otx2_flows.c | 33 static void otx2_clear_ntuple_flow_info(struct otx2_nic *pfvf, struct otx2_flow_config *flow_cfg) in otx2_clear_ntuple_flow_info() argument 35 devm_kfree(pfvf->dev, flow_cfg->flow_ent); in otx2_clear_ntuple_flow_info() 36 flow_cfg->flow_ent = NULL; in otx2_clear_ntuple_flow_info() 37 flow_cfg->max_flows = 0; in otx2_clear_ntuple_flow_info() 133 struct otx2_flow_config *flow_cfg = pfvf->flow_cfg; in otx2_free_ntuple_mcam_entries() local 137 if (!flow_cfg->max_flows) in otx2_free_ntuple_mcam_entries() 141 for (ent = 0; ent < flow_cfg->max_flows; ent++) { in otx2_free_ntuple_mcam_entries() 146 req->entry = flow_cfg->flow_ent[ent]; in otx2_free_ntuple_mcam_entries() 154 otx2_clear_ntuple_flow_info(pfvf, flow_cfg); in otx2_free_ntuple_mcam_entries() 160 struct otx2_flow_config *flow_cfg = pfvf->flow_cfg; in otx2_alloc_mcam_entries() local [all …]
|
| H A D | otx2_tc.c | 509 refcount_inc(&nic->flow_cfg->mark_flows); in otx2_tc_parse_actions() 942 struct otx2_flow_config *flow_cfg = pfvf->flow_cfg; in otx2_destroy_tc_flow_list() local 948 list_for_each_entry_safe(iter, tmp, &flow_cfg->flow_list_tc, list) { in otx2_destroy_tc_flow_list() 951 flow_cfg->nr_flows--; in otx2_destroy_tc_flow_list() 956 otx2_tc_get_entry_by_cookie(struct otx2_flow_config *flow_cfg, in otx2_tc_get_entry_by_cookie() argument 961 list_for_each_entry(tmp, &flow_cfg->flow_list_tc, list) { in otx2_tc_get_entry_by_cookie() 970 otx2_tc_get_entry_by_index(struct otx2_flow_config *flow_cfg, int index) in otx2_tc_get_entry_by_index() argument 975 list_for_each_entry(tmp, &flow_cfg->flow_list_tc, list) { in otx2_tc_get_entry_by_index() 984 static void otx2_tc_del_from_flow_list(struct otx2_flow_config *flow_cfg, in otx2_tc_del_from_flow_list() argument 990 list_for_each_safe(pos, n, &flow_cfg->flow_list_tc) { in otx2_tc_del_from_flow_list() [all …]
|
| H A D | cn20k.c | 245 static int cn20k_tc_get_entry_index(struct otx2_flow_config *flow_cfg, in cn20k_tc_get_entry_index() argument 251 list_for_each_entry(tmp, &flow_cfg->flow_list_tc, list) { in cn20k_tc_get_entry_index() 287 struct otx2_flow_config *flow_cfg, in cn20k_tc_check_entry_shiftable() argument 296 first = list_first_entry(&flow_cfg->flow_list_tc, struct otx2_tc_flow, in cn20k_tc_check_entry_shiftable() 303 list_for_each_entry_safe(tmp, n, &flow_cfg->flow_list_tc, list) { in cn20k_tc_check_entry_shiftable() 326 struct otx2_flow_config *flow_cfg, in cn20k_tc_update_mcam_table_del_req() argument 334 index = cn20k_tc_get_entry_index(flow_cfg, node); in cn20k_tc_update_mcam_table_del_req() 340 first = list_first_entry(&flow_cfg->flow_list_tc, struct otx2_tc_flow, in cn20k_tc_update_mcam_table_del_req() 347 if (!cn20k_tc_check_entry_shiftable(nic, flow_cfg, node, in cn20k_tc_update_mcam_table_del_req() 358 list_for_each_entry_safe(tmp, n, &flow_cfg->flow_list_tc, list) { in cn20k_tc_update_mcam_table_del_req() [all …]
|
| H A D | rep.c | 43 rep->flow_cfg = kzalloc_objs(struct otx2_flow_config, 1); in rvu_rep_mcam_flow_init() 45 if (!rep->flow_cfg) in rvu_rep_mcam_flow_init() 50 rep->flow_cfg->flow_ent = kcalloc(count, sizeof(u16), GFP_KERNEL); in rvu_rep_mcam_flow_init() 51 if (!rep->flow_cfg->flow_ent) in rvu_rep_mcam_flow_init() 74 rep->flow_cfg->flow_ent[ent + allocated] = rsp->entry_list[ent]; in rvu_rep_mcam_flow_init() 88 sort(&rep->flow_cfg->flow_ent[0], allocated, in rvu_rep_mcam_flow_init() 89 sizeof(rep->flow_cfg->flow_ent[0]), mcam_entry_cmp, NULL); in rvu_rep_mcam_flow_init() 93 rep->flow_cfg->max_flows = allocated; in rvu_rep_mcam_flow_init() 101 INIT_LIST_HEAD(&rep->flow_cfg->flow_list); in rvu_rep_mcam_flow_init() 102 INIT_LIST_HEAD(&rep->flow_cfg->flow_list_tc); in rvu_rep_mcam_flow_init() [all …]
|
| H A D | rep.h | 39 struct otx2_flow_config *flow_cfg; member
|
| H A D | otx2_common.h | 538 struct otx2_flow_config *flow_cfg; member 1026 if (!pfvf->flow_cfg) in otx2_tc_flower_rule_cnt() 1029 return pfvf->flow_cfg->nr_flows; in otx2_tc_flower_rule_cnt() 1167 int otx2_get_maxflows(struct otx2_flow_config *flow_cfg); 1264 int otx2_tc_add_to_flow_list(struct otx2_flow_config *flow_cfg, 1268 otx2_tc_get_entry_by_index(struct otx2_flow_config *flow_cfg,
|
| H A D | otx2_pf.c | 1295 if (enable && !bitmap_empty(pf->flow_cfg->dmacflt_bmap, in otx2_cgx_config_loopback() 1296 pf->flow_cfg->dmacflt_max_flows)) in otx2_cgx_config_loopback() 1852 (netdev_uc_count(netdev) > pf->flow_cfg->ucast_flt_cnt)) { in otx2_do_set_rx_mode() 2606 struct otx2_flow_config *flow_cfg = pf->flow_cfg; in otx2_do_set_vf_vlan() local 2647 flow_cfg->def_ent[flow_cfg->vf_vlan_offset + idx]; in otx2_do_set_vf_vlan() 2660 flow_cfg->def_ent[flow_cfg->vf_vlan_offset + idx]; in otx2_do_set_vf_vlan() 2674 req->entry = flow_cfg->def_ent[flow_cfg->vf_vlan_offset + idx]; in otx2_do_set_vf_vlan() 2725 req->entry = flow_cfg->def_ent[flow_cfg->vf_vlan_offset + idx]; in otx2_do_set_vf_vlan()
|
| H A D | otx2_ethtool.c | 756 nfc->rule_cnt = pfvf->flow_cfg->nr_flows; in otx2_get_rxnfc() 780 pfvf->flow_cfg->ntuple = ntuple; in otx2_set_rxnfc()
|
| H A D | otx2_common.c | 2040 if (!pfvf->flow_cfg->max_flows) { in otx2_handle_ntuple_tc_features()
|
| /linux/drivers/dma/ti/ |
| H A D | k3-udma-glue.c | 734 struct k3_udma_glue_rx_flow_cfg *flow_cfg) in k3_udma_glue_cfg_rx_flow() argument 762 rx_ring_id = flow_cfg->ring_rxq_id; in k3_udma_glue_cfg_rx_flow() 763 rx_ringfdq_id = flow_cfg->ring_rxfdq0_id; in k3_udma_glue_cfg_rx_flow() 777 flow_cfg->rx_cfg.dma_dev = k3_udma_glue_rx_get_dma_device(rx_chn); in k3_udma_glue_cfg_rx_flow() 778 flow_cfg->rxfdq_cfg.dma_dev = flow_cfg->rx_cfg.dma_dev; in k3_udma_glue_cfg_rx_flow() 782 flow_cfg->rx_cfg.asel = rx_chn->common.atype_asel; in k3_udma_glue_cfg_rx_flow() 783 flow_cfg->rxfdq_cfg.asel = rx_chn->common.atype_asel; in k3_udma_glue_cfg_rx_flow() 786 ret = k3_ringacc_ring_cfg(flow->ringrx, &flow_cfg->rx_cfg); in k3_udma_glue_cfg_rx_flow() 792 ret = k3_ringacc_ring_cfg(flow->ringrxfdq, &flow_cfg->rxfdq_cfg); in k3_udma_glue_cfg_rx_flow() 828 if (flow_cfg->rx_error_handling) in k3_udma_glue_cfg_rx_flow() [all …]
|
| /linux/drivers/net/ethernet/ti/icssg/ |
| H A D | icssg_config.c | 512 struct icssg_flow_cfg __iomem *flow_cfg; in icssg_config() local 547 flow_cfg = config + PSI_L_REGULAR_FLOW_ID_BASE_OFFSET; in icssg_config() 548 writew(emac->rx_flow_id_base, &flow_cfg->rx_base_flow); in icssg_config() 549 writew(0, &flow_cfg->mgm_base_flow); in icssg_config()
|
| H A D | icssg_prueth.c | 1017 struct icssg_flow_cfg __iomem *flow_cfg; in emac_ndo_open() local 1073 flow_cfg = emac->dram.va + ICSSG_CONFIG_OFFSET + PSI_L_REGULAR_FLOW_ID_BASE_OFFSET; in emac_ndo_open() 1074 writew(emac->rx_flow_id_base, &flow_cfg->rx_base_flow); in emac_ndo_open()
|
| /linux/drivers/net/ethernet/marvell/octeontx2/af/ |
| H A D | rvu_nix.c | 4023 static int get_flowkey_alg_idx(struct nix_hw *nix_hw, u32 flow_cfg) in get_flowkey_alg_idx() argument 4029 if (nix_hw->flowkey.flowkey[i] == flow_cfg) in get_flowkey_alg_idx() 4040 static int set_flowkey_fields(struct nix_rx_flowkey_alg *alg, u32 flow_cfg) in set_flowkey_fields() argument 4080 l3_l4_src_dst = flow_cfg; in set_flowkey_fields() 4082 flow_cfg &= NIX_FLOW_KEY_TYPE_L3_L4_MASK; in set_flowkey_fields() 4086 field = &tmp; max_bit_pos = fls(flow_cfg); in set_flowkey_fields() 4091 valid_key = flow_cfg & key_type; in set_flowkey_fields() 4381 static int reserve_flowkey_alg_idx(struct rvu *rvu, int blkaddr, u32 flow_cfg) in reserve_flowkey_alg_idx() argument 4396 rc = set_flowkey_fields((struct nix_rx_flowkey_alg *)field, flow_cfg); in reserve_flowkey_alg_idx() 4408 hw->flowkey.flowkey[rc] = flow_cfg; in reserve_flowkey_alg_idx()
|