Lines Matching refs:lan966x

12 	struct lan966x *lan966x;
24 lan966x_fdb_find_entry(struct lan966x *lan966x,
29 list_for_each_entry(fdb_entry, &lan966x->fdb_entries, list) {
38 static void lan966x_fdb_add_entry(struct lan966x *lan966x,
43 fdb_entry = lan966x_fdb_find_entry(lan966x, fdb_info);
56 list_add_tail(&fdb_entry->list, &lan966x->fdb_entries);
59 static bool lan966x_fdb_del_entry(struct lan966x *lan966x,
64 list_for_each_entry_safe(fdb_entry, tmp, &lan966x->fdb_entries,
81 void lan966x_fdb_write_entries(struct lan966x *lan966x, u16 vid)
85 list_for_each_entry(fdb_entry, &lan966x->fdb_entries, list) {
89 lan966x_mac_cpu_learn(lan966x, fdb_entry->mac, fdb_entry->vid);
93 void lan966x_fdb_erase_entries(struct lan966x *lan966x, u16 vid)
97 list_for_each_entry(fdb_entry, &lan966x->fdb_entries, list) {
101 lan966x_mac_cpu_forget(lan966x, fdb_entry->mac, fdb_entry->vid);
105 static void lan966x_fdb_purge_entries(struct lan966x *lan966x)
109 list_for_each_entry_safe(fdb_entry, tmp, &lan966x->fdb_entries, list) {
115 int lan966x_fdb_init(struct lan966x *lan966x)
117 INIT_LIST_HEAD(&lan966x->fdb_entries);
118 lan966x->fdb_work = alloc_ordered_workqueue("lan966x_order", 0);
119 if (!lan966x->fdb_work)
125 void lan966x_fdb_deinit(struct lan966x *lan966x)
127 destroy_workqueue(lan966x->fdb_work);
128 lan966x_fdb_purge_entries(lan966x);
131 void lan966x_fdb_flush_workqueue(struct lan966x *lan966x)
133 flush_workqueue(lan966x->fdb_work);
140 struct lan966x *lan966x;
142 lan966x = fdb_work->lan966x;
150 lan966x_mac_add_entry(lan966x, port, fdb_info->addr,
156 lan966x_mac_del_entry(lan966x, fdb_info->addr,
165 struct lan966x *lan966x;
168 lan966x = fdb_work->lan966x;
181 lan966x_fdb_add_entry(lan966x, fdb_info);
182 if (!lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x,
186 lan966x_mac_cpu_learn(lan966x, fdb_info->addr,
190 ret = lan966x_fdb_del_entry(lan966x, fdb_info);
191 if (!lan966x_vlan_cpu_member_cpu_vlan_mask(lan966x,
196 lan966x_mac_cpu_forget(lan966x, fdb_info->addr,
206 struct lan966x *lan966x;
211 lan966x = fdb_work->lan966x;
219 lan966x_mac_add_entry(lan966x, port, fdb_info->addr,
225 lan966x_mac_del_entry(lan966x, fdb_info->addr, fdb_info->vid);
252 struct lan966x *lan966x = port->lan966x;
271 fdb_work->lan966x = lan966x;
281 queue_work(lan966x->fdb_work, &fdb_work->work);