Lines Matching refs:sfi
1845 struct felix_stream_filter *sfi) in vsc9959_psfp_sfi_set() argument
1849 if (sfi->index > VSC9959_PSFP_SFID_MAX) in vsc9959_psfp_sfi_set()
1852 if (!sfi->enable) { in vsc9959_psfp_sfi_set()
1853 ocelot_write(ocelot, ANA_TABLES_SFIDTIDX_SFID_INDEX(sfi->index), in vsc9959_psfp_sfi_set()
1864 if (sfi->sgid > VSC9959_PSFP_GATE_ID_MAX || in vsc9959_psfp_sfi_set()
1865 sfi->fmid > VSC9959_PSFP_POLICER_MAX) in vsc9959_psfp_sfi_set()
1869 (sfi->sg_valid ? ANA_TABLES_SFIDTIDX_SGID_VALID : 0) | in vsc9959_psfp_sfi_set()
1870 ANA_TABLES_SFIDTIDX_SGID(sfi->sgid) | in vsc9959_psfp_sfi_set()
1871 (sfi->fm_valid ? ANA_TABLES_SFIDTIDX_POL_ENA : 0) | in vsc9959_psfp_sfi_set()
1872 ANA_TABLES_SFIDTIDX_POL_IDX(sfi->fmid) | in vsc9959_psfp_sfi_set()
1873 ANA_TABLES_SFIDTIDX_SFID_INDEX(sfi->index), in vsc9959_psfp_sfi_set()
1877 (sfi->prio_valid ? ANA_TABLES_SFIDACCESS_IGR_PRIO_MATCH_ENA : 0) | in vsc9959_psfp_sfi_set()
1878 ANA_TABLES_SFIDACCESS_IGR_PRIO(sfi->prio) | in vsc9959_psfp_sfi_set()
1879 ANA_TABLES_SFIDACCESS_MAX_SDU_LEN(sfi->maxsdu) | in vsc9959_psfp_sfi_set()
1913 struct felix_stream_filter *sfi, in vsc9959_psfp_sfi_list_add() argument
1919 sfi_entry = kmemdup(sfi, sizeof(*sfi_entry), GFP_KERNEL); in vsc9959_psfp_sfi_list_add()
1931 vsc9959_psfp_sfidmask_set(ocelot, sfi->index, sfi->portmask); in vsc9959_psfp_sfi_list_add()
1939 struct felix_stream_filter *sfi) in vsc9959_psfp_sfi_table_add() argument
1951 if (sfi->sg_valid == tmp->sg_valid && in vsc9959_psfp_sfi_table_add()
1952 sfi->fm_valid == tmp->fm_valid && in vsc9959_psfp_sfi_table_add()
1953 sfi->portmask == tmp->portmask && in vsc9959_psfp_sfi_table_add()
1954 tmp->sgid == sfi->sgid && in vsc9959_psfp_sfi_table_add()
1955 tmp->fmid == sfi->fmid) { in vsc9959_psfp_sfi_table_add()
1956 sfi->index = tmp->index; in vsc9959_psfp_sfi_table_add()
1966 sfi->index = insert; in vsc9959_psfp_sfi_table_add()
1968 return vsc9959_psfp_sfi_list_add(ocelot, sfi, last); in vsc9959_psfp_sfi_table_add()
1972 struct felix_stream_filter *sfi, in vsc9959_psfp_sfi_table_add2() argument
1993 sfi->index = insert; in vsc9959_psfp_sfi_table_add2()
1995 ret = vsc9959_psfp_sfi_list_add(ocelot, sfi, last); in vsc9959_psfp_sfi_table_add2()
2188 struct felix_stream_filter sfi = {0}; in vsc9959_psfp_filter_add() local
2224 sfi.sg_valid = 1; in vsc9959_psfp_filter_add()
2225 sfi.sgid = sgi->index; in vsc9959_psfp_filter_add()
2245 sfi.fm_valid = 1; in vsc9959_psfp_filter_add()
2246 sfi.fmid = index; in vsc9959_psfp_filter_add()
2247 sfi.maxsdu = a->police.mtu; in vsc9959_psfp_filter_add()
2258 sfi.portmask = stream.ports; in vsc9959_psfp_filter_add()
2259 sfi.prio_valid = (stream.prio < 0 ? 0 : 1); in vsc9959_psfp_filter_add()
2260 sfi.prio = (sfi.prio_valid ? stream.prio : 0); in vsc9959_psfp_filter_add()
2261 sfi.enable = 1; in vsc9959_psfp_filter_add()
2290 sfi.portmask = stream.ports; in vsc9959_psfp_filter_add()
2293 ret = vsc9959_psfp_sfi_table_add2(ocelot, &sfi, in vsc9959_psfp_filter_add()
2298 &sfi); in vsc9959_psfp_filter_add()
2306 ret = vsc9959_psfp_sfi_table_add(ocelot, &sfi); in vsc9959_psfp_filter_add()
2311 stream.sfid = sfi.index; in vsc9959_psfp_filter_add()
2325 if (sfi.sg_valid) in vsc9959_psfp_filter_add()
2326 vsc9959_psfp_sgi_table_del(ocelot, sfi.sgid); in vsc9959_psfp_filter_add()
2328 if (sfi.fm_valid) in vsc9959_psfp_filter_add()
2329 ocelot_vcap_policer_del(ocelot, sfi.fmid); in vsc9959_psfp_filter_add()
2341 static struct felix_stream_filter *sfi; in vsc9959_psfp_filter_del() local
2351 sfi = vsc9959_psfp_sfi_table_get(&psfp->sfi_list, stream->sfid); in vsc9959_psfp_filter_del()
2352 if (!sfi) { in vsc9959_psfp_filter_del()
2357 if (sfi->sg_valid) in vsc9959_psfp_filter_del()
2358 vsc9959_psfp_sgi_table_del(ocelot, sfi->sgid); in vsc9959_psfp_filter_del()
2360 if (sfi->fm_valid) in vsc9959_psfp_filter_del()
2361 ocelot_vcap_policer_del(ocelot, sfi->fmid); in vsc9959_psfp_filter_del()
2387 struct felix_stream_filter *sfi) in vsc9959_update_sfid_stats() argument
2389 struct felix_stream_filter_counters *s = &sfi->stats; in vsc9959_update_sfid_stats()
2391 u32 sfid = sfi->index; in vsc9959_update_sfid_stats()
2420 struct felix_stream_filter *sfi; in vsc9959_update_stats() local
2424 list_for_each_entry(sfi, &psfp->sfi_list, list) in vsc9959_update_stats()
2425 vsc9959_update_sfid_stats(ocelot, sfi); in vsc9959_update_stats()
2436 static struct felix_stream_filter *sfi; in vsc9959_psfp_stats_get() local
2443 sfi = vsc9959_psfp_sfi_table_get(&psfp->sfi_list, stream->sfid); in vsc9959_psfp_stats_get()
2444 if (!sfi) in vsc9959_psfp_stats_get()
2449 vsc9959_update_sfid_stats(ocelot, sfi); in vsc9959_psfp_stats_get()
2451 s = &sfi->stats; in vsc9959_psfp_stats_get()