Lines Matching full:sgi
2096 struct felix_stream_gate *sgi) in vsc9959_psfp_parse_gate() argument
2098 sgi->index = entry->hw_index; in vsc9959_psfp_parse_gate()
2099 sgi->ipv_valid = (entry->gate.prio < 0) ? 0 : 1; in vsc9959_psfp_parse_gate()
2100 sgi->init_ipv = (sgi->ipv_valid) ? entry->gate.prio : 0; in vsc9959_psfp_parse_gate()
2101 sgi->basetime = entry->gate.basetime; in vsc9959_psfp_parse_gate()
2102 sgi->cycletime = entry->gate.cycletime; in vsc9959_psfp_parse_gate()
2103 sgi->num_entries = entry->gate.num_entries; in vsc9959_psfp_parse_gate()
2104 sgi->enable = 1; in vsc9959_psfp_parse_gate()
2106 memcpy(sgi->entries, entry->gate.entries, in vsc9959_psfp_parse_gate()
2116 struct felix_stream_gate *sgi) in vsc9959_psfp_sgi_set() argument
2124 if (sgi->index > VSC9959_PSFP_GATE_ID_MAX) in vsc9959_psfp_sgi_set()
2127 ocelot_write(ocelot, ANA_SG_ACCESS_CTRL_SGID(sgi->index), in vsc9959_psfp_sgi_set()
2130 if (!sgi->enable) { in vsc9959_psfp_sgi_set()
2139 if (sgi->cycletime < VSC9959_PSFP_GATE_CYCLETIME_MIN || in vsc9959_psfp_sgi_set()
2140 sgi->cycletime > NSEC_PER_SEC) in vsc9959_psfp_sgi_set()
2143 if (sgi->num_entries > VSC9959_PSFP_GATE_LIST_NUM) in vsc9959_psfp_sgi_set()
2146 vsc9959_new_base_time(ocelot, sgi->basetime, sgi->cycletime, &base_ts); in vsc9959_psfp_sgi_set()
2153 (sgi->ipv_valid ? ANA_SG_CONFIG_REG_3_IPV_VALID : 0) | in vsc9959_psfp_sgi_set()
2154 ANA_SG_CONFIG_REG_3_INIT_IPV(sgi->init_ipv) | in vsc9959_psfp_sgi_set()
2156 ANA_SG_CONFIG_REG_3_LIST_LENGTH(sgi->num_entries) | in vsc9959_psfp_sgi_set()
2161 ocelot_write(ocelot, sgi->cycletime, ANA_SG_CONFIG_REG_4); in vsc9959_psfp_sgi_set()
2163 e = sgi->entries; in vsc9959_psfp_sgi_set()
2164 for (i = 0; i < sgi->num_entries; i++) { in vsc9959_psfp_sgi_set()
2186 struct felix_stream_gate *sgi) in vsc9959_psfp_sgi_table_add() argument
2195 if (tmp->index == sgi->index) { in vsc9959_psfp_sgi_table_add()
2204 ret = vsc9959_psfp_sgi_set(ocelot, sgi); in vsc9959_psfp_sgi_table_add()
2210 tmp->index = sgi->index; in vsc9959_psfp_sgi_table_add()
2221 struct felix_stream_gate sgi = {0}; in vsc9959_psfp_sgi_table_del() local
2231 sgi.index = index; in vsc9959_psfp_sgi_table_del()
2232 sgi.enable = 0; in vsc9959_psfp_sgi_table_del()
2233 vsc9959_psfp_sgi_set(ocelot, &sgi); in vsc9959_psfp_sgi_table_del()
2250 struct felix_stream_gate *sgi; in vsc9959_psfp_filter_add() local
2270 size = struct_size(sgi, entries, a->gate.num_entries); in vsc9959_psfp_filter_add()
2271 sgi = kzalloc(size, GFP_KERNEL); in vsc9959_psfp_filter_add()
2272 if (!sgi) { in vsc9959_psfp_filter_add()
2276 vsc9959_psfp_parse_gate(a, sgi); in vsc9959_psfp_filter_add()
2277 ret = vsc9959_psfp_sgi_table_add(ocelot, sgi); in vsc9959_psfp_filter_add()
2279 kfree(sgi); in vsc9959_psfp_filter_add()
2283 sfi.sgid = sgi->index; in vsc9959_psfp_filter_add()
2284 kfree(sgi); in vsc9959_psfp_filter_add()