Lines Matching full:sgi
2099 struct felix_stream_gate *sgi) in vsc9959_psfp_parse_gate() argument
2101 sgi->index = entry->hw_index; in vsc9959_psfp_parse_gate()
2102 sgi->ipv_valid = (entry->gate.prio < 0) ? 0 : 1; in vsc9959_psfp_parse_gate()
2103 sgi->init_ipv = (sgi->ipv_valid) ? entry->gate.prio : 0; in vsc9959_psfp_parse_gate()
2104 sgi->basetime = entry->gate.basetime; in vsc9959_psfp_parse_gate()
2105 sgi->cycletime = entry->gate.cycletime; in vsc9959_psfp_parse_gate()
2106 sgi->num_entries = entry->gate.num_entries; in vsc9959_psfp_parse_gate()
2107 sgi->enable = 1; in vsc9959_psfp_parse_gate()
2109 memcpy(sgi->entries, entry->gate.entries, in vsc9959_psfp_parse_gate()
2119 struct felix_stream_gate *sgi) in vsc9959_psfp_sgi_set() argument
2127 if (sgi->index > VSC9959_PSFP_GATE_ID_MAX) in vsc9959_psfp_sgi_set()
2130 ocelot_write(ocelot, ANA_SG_ACCESS_CTRL_SGID(sgi->index), in vsc9959_psfp_sgi_set()
2133 if (!sgi->enable) { in vsc9959_psfp_sgi_set()
2142 if (sgi->cycletime < VSC9959_PSFP_GATE_CYCLETIME_MIN || in vsc9959_psfp_sgi_set()
2143 sgi->cycletime > NSEC_PER_SEC) in vsc9959_psfp_sgi_set()
2146 if (sgi->num_entries > VSC9959_PSFP_GATE_LIST_NUM) in vsc9959_psfp_sgi_set()
2149 vsc9959_new_base_time(ocelot, sgi->basetime, sgi->cycletime, &base_ts); in vsc9959_psfp_sgi_set()
2156 (sgi->ipv_valid ? ANA_SG_CONFIG_REG_3_IPV_VALID : 0) | in vsc9959_psfp_sgi_set()
2157 ANA_SG_CONFIG_REG_3_INIT_IPV(sgi->init_ipv) | in vsc9959_psfp_sgi_set()
2159 ANA_SG_CONFIG_REG_3_LIST_LENGTH(sgi->num_entries) | in vsc9959_psfp_sgi_set()
2164 ocelot_write(ocelot, sgi->cycletime, ANA_SG_CONFIG_REG_4); in vsc9959_psfp_sgi_set()
2166 e = sgi->entries; in vsc9959_psfp_sgi_set()
2167 for (i = 0; i < sgi->num_entries; i++) { in vsc9959_psfp_sgi_set()
2189 struct felix_stream_gate *sgi) in vsc9959_psfp_sgi_table_add() argument
2198 if (tmp->index == sgi->index) { in vsc9959_psfp_sgi_table_add()
2207 ret = vsc9959_psfp_sgi_set(ocelot, sgi); in vsc9959_psfp_sgi_table_add()
2213 tmp->index = sgi->index; in vsc9959_psfp_sgi_table_add()
2224 struct felix_stream_gate sgi = {0}; in vsc9959_psfp_sgi_table_del() local
2234 sgi.index = index; in vsc9959_psfp_sgi_table_del()
2235 sgi.enable = 0; in vsc9959_psfp_sgi_table_del()
2236 vsc9959_psfp_sgi_set(ocelot, &sgi); in vsc9959_psfp_sgi_table_del()
2253 struct felix_stream_gate *sgi; in vsc9959_psfp_filter_add() local
2273 size = struct_size(sgi, entries, a->gate.num_entries); in vsc9959_psfp_filter_add()
2274 sgi = kzalloc(size, GFP_KERNEL); in vsc9959_psfp_filter_add()
2275 if (!sgi) { in vsc9959_psfp_filter_add()
2279 vsc9959_psfp_parse_gate(a, sgi); in vsc9959_psfp_filter_add()
2280 ret = vsc9959_psfp_sgi_table_add(ocelot, sgi); in vsc9959_psfp_filter_add()
2282 kfree(sgi); in vsc9959_psfp_filter_add()
2286 sfi.sgid = sgi->index; in vsc9959_psfp_filter_add()
2287 kfree(sgi); in vsc9959_psfp_filter_add()