Lines Matching refs:sfi

1895 				struct felix_stream_filter *sfi)
1899 if (sfi->index > VSC9959_PSFP_SFID_MAX)
1902 if (!sfi->enable) {
1903 ocelot_write(ocelot, ANA_TABLES_SFIDTIDX_SFID_INDEX(sfi->index),
1914 if (sfi->sgid > VSC9959_PSFP_GATE_ID_MAX ||
1915 sfi->fmid > VSC9959_PSFP_POLICER_MAX)
1919 (sfi->sg_valid ? ANA_TABLES_SFIDTIDX_SGID_VALID : 0) |
1920 ANA_TABLES_SFIDTIDX_SGID(sfi->sgid) |
1921 (sfi->fm_valid ? ANA_TABLES_SFIDTIDX_POL_ENA : 0) |
1922 ANA_TABLES_SFIDTIDX_POL_IDX(sfi->fmid) |
1923 ANA_TABLES_SFIDTIDX_SFID_INDEX(sfi->index),
1927 (sfi->prio_valid ? ANA_TABLES_SFIDACCESS_IGR_PRIO_MATCH_ENA : 0) |
1928 ANA_TABLES_SFIDACCESS_IGR_PRIO(sfi->prio) |
1929 ANA_TABLES_SFIDACCESS_MAX_SDU_LEN(sfi->maxsdu) |
1963 struct felix_stream_filter *sfi,
1969 sfi_entry = kmemdup(sfi, sizeof(*sfi_entry), GFP_KERNEL);
1981 vsc9959_psfp_sfidmask_set(ocelot, sfi->index, sfi->portmask);
1989 struct felix_stream_filter *sfi)
2001 if (sfi->sg_valid == tmp->sg_valid &&
2002 sfi->fm_valid == tmp->fm_valid &&
2003 sfi->portmask == tmp->portmask &&
2004 tmp->sgid == sfi->sgid &&
2005 tmp->fmid == sfi->fmid) {
2006 sfi->index = tmp->index;
2016 sfi->index = insert;
2018 return vsc9959_psfp_sfi_list_add(ocelot, sfi, last);
2022 struct felix_stream_filter *sfi,
2043 sfi->index = insert;
2045 ret = vsc9959_psfp_sfi_list_add(ocelot, sfi, last);
2238 struct felix_stream_filter sfi = {0};
2274 sfi.sg_valid = 1;
2275 sfi.sgid = sgi->index;
2295 sfi.fm_valid = 1;
2296 sfi.fmid = index;
2297 sfi.maxsdu = a->police.mtu;
2308 sfi.portmask = stream.ports;
2309 sfi.prio_valid = (stream.prio < 0 ? 0 : 1);
2310 sfi.prio = (sfi.prio_valid ? stream.prio : 0);
2311 sfi.enable = 1;
2340 sfi.portmask = stream.ports;
2343 ret = vsc9959_psfp_sfi_table_add2(ocelot, &sfi,
2348 &sfi);
2356 ret = vsc9959_psfp_sfi_table_add(ocelot, &sfi);
2361 stream.sfid = sfi.index;
2375 if (sfi.sg_valid)
2376 vsc9959_psfp_sgi_table_del(ocelot, sfi.sgid);
2378 if (sfi.fm_valid)
2379 ocelot_vcap_policer_del(ocelot, sfi.fmid);
2391 static struct felix_stream_filter *sfi;
2401 sfi = vsc9959_psfp_sfi_table_get(&psfp->sfi_list, stream->sfid);
2402 if (!sfi) {
2407 if (sfi->sg_valid)
2408 vsc9959_psfp_sgi_table_del(ocelot, sfi->sgid);
2410 if (sfi->fm_valid)
2411 ocelot_vcap_policer_del(ocelot, sfi->fmid);
2437 struct felix_stream_filter *sfi)
2439 struct felix_stream_filter_counters *s = &sfi->stats;
2441 u32 sfid = sfi->index;
2470 struct felix_stream_filter *sfi;
2474 list_for_each_entry(sfi, &psfp->sfi_list, list)
2475 vsc9959_update_sfid_stats(ocelot, sfi);
2486 static struct felix_stream_filter *sfi;
2493 sfi = vsc9959_psfp_sfi_table_get(&psfp->sfi_list, stream->sfid);
2494 if (!sfi)
2499 vsc9959_update_sfid_stats(ocelot, sfi);
2501 s = &sfi->stats;