• Home
  • Raw
  • Download

Lines Matching full:dp

20 static int dsa_port_notify(const struct dsa_port *dp, unsigned long e, void *v)  in dsa_port_notify()  argument
22 struct raw_notifier_head *nh = &dp->ds->dst->nh; in dsa_port_notify()
30 int dsa_port_set_state(struct dsa_port *dp, u8 state, in dsa_port_set_state() argument
33 struct dsa_switch *ds = dp->ds; in dsa_port_set_state()
34 int port = dp->index; in dsa_port_set_state()
48 if ((dp->stp_state == BR_STATE_LEARNING || in dsa_port_set_state()
49 dp->stp_state == BR_STATE_FORWARDING) && in dsa_port_set_state()
56 dp->stp_state = state; in dsa_port_set_state()
61 static void dsa_port_set_state_now(struct dsa_port *dp, u8 state) in dsa_port_set_state_now() argument
65 err = dsa_port_set_state(dp, state, NULL); in dsa_port_set_state_now()
70 int dsa_port_enable(struct dsa_port *dp, struct phy_device *phy) in dsa_port_enable() argument
72 struct dsa_switch *ds = dp->ds; in dsa_port_enable()
73 int port = dp->index; in dsa_port_enable()
82 if (!dp->bridge_dev) in dsa_port_enable()
83 dsa_port_set_state_now(dp, BR_STATE_FORWARDING); in dsa_port_enable()
88 void dsa_port_disable(struct dsa_port *dp, struct phy_device *phy) in dsa_port_disable() argument
90 struct dsa_switch *ds = dp->ds; in dsa_port_disable()
91 int port = dp->index; in dsa_port_disable()
93 if (!dp->bridge_dev) in dsa_port_disable()
94 dsa_port_set_state_now(dp, BR_STATE_DISABLED); in dsa_port_disable()
100 int dsa_port_bridge_join(struct dsa_port *dp, struct net_device *br) in dsa_port_bridge_join() argument
103 .sw_index = dp->ds->index, in dsa_port_bridge_join()
104 .port = dp->index, in dsa_port_bridge_join()
112 dp->bridge_dev = br; in dsa_port_bridge_join()
114 err = dsa_port_notify(dp, DSA_NOTIFIER_BRIDGE_JOIN, &info); in dsa_port_bridge_join()
118 dp->bridge_dev = NULL; in dsa_port_bridge_join()
123 void dsa_port_bridge_leave(struct dsa_port *dp, struct net_device *br) in dsa_port_bridge_leave() argument
126 .sw_index = dp->ds->index, in dsa_port_bridge_leave()
127 .port = dp->index, in dsa_port_bridge_leave()
135 dp->bridge_dev = NULL; in dsa_port_bridge_leave()
137 err = dsa_port_notify(dp, DSA_NOTIFIER_BRIDGE_LEAVE, &info); in dsa_port_bridge_leave()
144 dsa_port_set_state_now(dp, BR_STATE_FORWARDING); in dsa_port_bridge_leave()
147 int dsa_port_vlan_filtering(struct dsa_port *dp, bool vlan_filtering, in dsa_port_vlan_filtering() argument
150 struct dsa_switch *ds = dp->ds; in dsa_port_vlan_filtering()
157 return ds->ops->port_vlan_filtering(ds, dp->index, in dsa_port_vlan_filtering()
163 int dsa_port_ageing_time(struct dsa_port *dp, clock_t ageing_clock, in dsa_port_ageing_time() argument
174 return dsa_port_notify(dp, DSA_NOTIFIER_AGEING_TIME, &info); in dsa_port_ageing_time()
176 dp->ageing_time = ageing_time; in dsa_port_ageing_time()
178 return dsa_port_notify(dp, DSA_NOTIFIER_AGEING_TIME, &info); in dsa_port_ageing_time()
181 int dsa_port_fdb_add(struct dsa_port *dp, const unsigned char *addr, in dsa_port_fdb_add() argument
185 .sw_index = dp->ds->index, in dsa_port_fdb_add()
186 .port = dp->index, in dsa_port_fdb_add()
191 return dsa_port_notify(dp, DSA_NOTIFIER_FDB_ADD, &info); in dsa_port_fdb_add()
194 int dsa_port_fdb_del(struct dsa_port *dp, const unsigned char *addr, in dsa_port_fdb_del() argument
198 .sw_index = dp->ds->index, in dsa_port_fdb_del()
199 .port = dp->index, in dsa_port_fdb_del()
205 return dsa_port_notify(dp, DSA_NOTIFIER_FDB_DEL, &info); in dsa_port_fdb_del()
208 int dsa_port_fdb_dump(struct dsa_port *dp, dsa_fdb_dump_cb_t *cb, void *data) in dsa_port_fdb_dump() argument
210 struct dsa_switch *ds = dp->ds; in dsa_port_fdb_dump()
211 int port = dp->index; in dsa_port_fdb_dump()
219 int dsa_port_mdb_add(const struct dsa_port *dp, in dsa_port_mdb_add() argument
224 .sw_index = dp->ds->index, in dsa_port_mdb_add()
225 .port = dp->index, in dsa_port_mdb_add()
230 return dsa_port_notify(dp, DSA_NOTIFIER_MDB_ADD, &info); in dsa_port_mdb_add()
233 int dsa_port_mdb_del(const struct dsa_port *dp, in dsa_port_mdb_del() argument
237 .sw_index = dp->ds->index, in dsa_port_mdb_del()
238 .port = dp->index, in dsa_port_mdb_del()
242 return dsa_port_notify(dp, DSA_NOTIFIER_MDB_DEL, &info); in dsa_port_mdb_del()
245 int dsa_port_vlan_add(struct dsa_port *dp, in dsa_port_vlan_add() argument
250 .sw_index = dp->ds->index, in dsa_port_vlan_add()
251 .port = dp->index, in dsa_port_vlan_add()
259 if (br_vlan_enabled(dp->bridge_dev)) in dsa_port_vlan_add()
260 return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_ADD, &info); in dsa_port_vlan_add()
265 int dsa_port_vlan_del(struct dsa_port *dp, in dsa_port_vlan_del() argument
269 .sw_index = dp->ds->index, in dsa_port_vlan_del()
270 .port = dp->index, in dsa_port_vlan_del()
277 if (br_vlan_enabled(dp->bridge_dev)) in dsa_port_vlan_del()
278 return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_DEL, &info); in dsa_port_vlan_del()
283 static struct phy_device *dsa_port_get_phy_device(struct dsa_port *dp) in dsa_port_get_phy_device() argument
288 phy_dn = of_parse_phandle(dp->dn, "phy-handle", 0); in dsa_port_get_phy_device()
301 static int dsa_port_setup_phy_of(struct dsa_port *dp, bool enable) in dsa_port_setup_phy_of() argument
303 struct dsa_switch *ds = dp->ds; in dsa_port_setup_phy_of()
305 int port = dp->index; in dsa_port_setup_phy_of()
308 phydev = dsa_port_get_phy_device(dp); in dsa_port_setup_phy_of()
343 static int dsa_port_fixed_link_register_of(struct dsa_port *dp) in dsa_port_fixed_link_register_of() argument
345 struct device_node *dn = dp->dn; in dsa_port_fixed_link_register_of()
346 struct dsa_switch *ds = dp->ds; in dsa_port_fixed_link_register_of()
348 int port = dp->index; in dsa_port_fixed_link_register_of()
378 int dsa_port_link_register_of(struct dsa_port *dp) in dsa_port_link_register_of() argument
380 if (of_phy_is_fixed_link(dp->dn)) in dsa_port_link_register_of()
381 return dsa_port_fixed_link_register_of(dp); in dsa_port_link_register_of()
383 return dsa_port_setup_phy_of(dp, true); in dsa_port_link_register_of()
386 void dsa_port_link_unregister_of(struct dsa_port *dp) in dsa_port_link_unregister_of() argument
388 if (of_phy_is_fixed_link(dp->dn)) in dsa_port_link_unregister_of()
389 of_phy_deregister_fixed_link(dp->dn); in dsa_port_link_unregister_of()
391 dsa_port_setup_phy_of(dp, false); in dsa_port_link_unregister_of()
394 int dsa_port_get_phy_strings(struct dsa_port *dp, uint8_t *data) in dsa_port_get_phy_strings() argument
399 if (of_phy_is_fixed_link(dp->dn)) in dsa_port_get_phy_strings()
402 phydev = dsa_port_get_phy_device(dp); in dsa_port_get_phy_strings()
413 int dsa_port_get_ethtool_phy_stats(struct dsa_port *dp, uint64_t *data) in dsa_port_get_ethtool_phy_stats() argument
418 if (of_phy_is_fixed_link(dp->dn)) in dsa_port_get_ethtool_phy_stats()
421 phydev = dsa_port_get_phy_device(dp); in dsa_port_get_ethtool_phy_stats()
432 int dsa_port_get_phy_sset_count(struct dsa_port *dp) in dsa_port_get_phy_sset_count() argument
437 if (of_phy_is_fixed_link(dp->dn)) in dsa_port_get_phy_sset_count()
440 phydev = dsa_port_get_phy_device(dp); in dsa_port_get_phy_sset_count()