Lines Matching full:dp

88 	struct dsa_port *dp = dsa_slave_to_port(dev);  in dsa_slave_standalone_event_work()  local
90 struct dsa_switch *ds = dp->ds; in dsa_slave_standalone_event_work()
96 err = dsa_port_standalone_host_fdb_add(dp, addr, vid); in dsa_slave_standalone_event_work()
100 dp->index, addr, vid, err); in dsa_slave_standalone_event_work()
106 err = dsa_port_standalone_host_fdb_del(dp, addr, vid); in dsa_slave_standalone_event_work()
110 dp->index, addr, vid, err); in dsa_slave_standalone_event_work()
118 err = dsa_port_standalone_host_mdb_add(dp, &mdb); in dsa_slave_standalone_event_work()
122 dp->index, addr, vid, err); in dsa_slave_standalone_event_work()
130 err = dsa_port_standalone_host_mdb_del(dp, &mdb); in dsa_slave_standalone_event_work()
134 dp->index, addr, vid, err); in dsa_slave_standalone_event_work()
177 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_for_each() local
187 list_for_each_entry(v, &dp->user_vlans, list) { in dsa_slave_vlan_for_each()
200 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_sync_uc() local
209 if (!dsa_switch_supports_uc_filtering(dp->ds)) in dsa_slave_sync_uc()
220 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_unsync_uc() local
229 if (!dsa_switch_supports_uc_filtering(dp->ds)) in dsa_slave_unsync_uc()
240 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_sync_mc() local
249 if (!dsa_switch_supports_mc_filtering(dp->ds)) in dsa_slave_sync_mc()
260 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_unsync_mc() local
269 if (!dsa_switch_supports_mc_filtering(dp->ds)) in dsa_slave_unsync_mc()
278 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_sync_ha() local
279 struct dsa_switch *ds = dp->ds; in dsa_slave_sync_ha()
299 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_unsync_ha() local
300 struct dsa_switch *ds = dp->ds; in dsa_slave_unsync_ha()
361 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_open() local
362 struct dsa_switch *ds = dp->ds; in dsa_slave_open()
372 err = dsa_port_standalone_host_fdb_add(dp, dev->dev_addr, 0); in dsa_slave_open()
383 err = dsa_port_enable_rt(dp, dev->phydev); in dsa_slave_open()
394 dsa_port_standalone_host_fdb_del(dp, dev->dev_addr, 0); in dsa_slave_open()
402 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_close() local
403 struct dsa_switch *ds = dp->ds; in dsa_slave_close()
405 dsa_port_disable_rt(dp); in dsa_slave_close()
411 dsa_port_standalone_host_fdb_del(dp, dev->dev_addr, 0); in dsa_slave_close()
419 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_manage_host_flood() local
422 dsa_port_set_host_flood(dp, uc, mc); in dsa_slave_manage_host_flood()
428 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_change_rx_flags() local
429 struct dsa_switch *ds = dp->ds; in dsa_slave_change_rx_flags()
452 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_mac_address() local
453 struct dsa_switch *ds = dp->ds; in dsa_slave_set_mac_address()
467 err = dsa_port_standalone_host_fdb_add(dp, addr->sa_data, 0); in dsa_slave_set_mac_address()
482 dsa_port_standalone_host_fdb_del(dp, dev->dev_addr, 0); in dsa_slave_set_mac_address()
491 dsa_port_standalone_host_fdb_del(dp, addr->sa_data, 0); in dsa_slave_set_mac_address()
552 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_fdb_dump() local
561 err = dsa_port_fdb_dump(dp, dsa_slave_port_fdb_do_dump, &dump); in dsa_slave_fdb_dump()
570 struct dsa_switch *ds = p->dp->ds; in dsa_slave_ioctl()
571 int port = p->dp->index; in dsa_slave_ioctl()
585 return phylink_mii_ioctl(p->dp->pl, ifr, cmd); in dsa_slave_ioctl()
592 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_port_attr_set() local
595 if (ctx && ctx != dp) in dsa_slave_port_attr_set()
600 if (!dsa_port_offloads_bridge_port(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
603 ret = dsa_port_set_state(dp, attr->u.stp_state, true); in dsa_slave_port_attr_set()
606 if (!dsa_port_offloads_bridge_port(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
609 ret = dsa_port_set_mst_state(dp, &attr->u.mst_state, extack); in dsa_slave_port_attr_set()
612 if (!dsa_port_offloads_bridge_dev(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
615 ret = dsa_port_vlan_filtering(dp, attr->u.vlan_filtering, in dsa_slave_port_attr_set()
619 if (!dsa_port_offloads_bridge_dev(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
622 ret = dsa_port_ageing_time(dp, attr->u.ageing_time); in dsa_slave_port_attr_set()
625 if (!dsa_port_offloads_bridge_dev(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
628 ret = dsa_port_mst_enable(dp, attr->u.mst, extack); in dsa_slave_port_attr_set()
631 if (!dsa_port_offloads_bridge_port(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
634 ret = dsa_port_pre_bridge_flags(dp, attr->u.brport_flags, in dsa_slave_port_attr_set()
638 if (!dsa_port_offloads_bridge_port(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
641 ret = dsa_port_bridge_flags(dp, attr->u.brport_flags, extack); in dsa_slave_port_attr_set()
644 if (!dsa_port_offloads_bridge_dev(dp, attr->orig_dev)) in dsa_slave_port_attr_set()
647 ret = dsa_port_vlan_msti(dp, &attr->u.vlan_msti); in dsa_slave_port_attr_set()
683 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_add() local
687 if (dsa_port_skip_vlan_configuration(dp)) { in dsa_slave_vlan_add()
697 if (br_vlan_enabled(dsa_port_bridge_dev_get(dp))) { in dsa_slave_vlan_add()
708 return dsa_port_vlan_add(dp, vlan, extack); in dsa_slave_vlan_add()
718 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_host_vlan_add() local
722 if (!dp->bridge) in dsa_slave_host_vlan_add()
725 if (dsa_port_skip_vlan_configuration(dp)) { in dsa_slave_host_vlan_add()
737 return dsa_port_host_vlan_add(dp, &vlan, extack); in dsa_slave_host_vlan_add()
744 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_port_obj_add() local
747 if (ctx && ctx != dp) in dsa_slave_port_obj_add()
752 if (!dsa_port_offloads_bridge_port(dp, obj->orig_dev)) in dsa_slave_port_obj_add()
755 err = dsa_port_mdb_add(dp, SWITCHDEV_OBJ_PORT_MDB(obj)); in dsa_slave_port_obj_add()
758 if (!dsa_port_offloads_bridge_dev(dp, obj->orig_dev)) in dsa_slave_port_obj_add()
761 err = dsa_port_bridge_host_mdb_add(dp, SWITCHDEV_OBJ_PORT_MDB(obj)); in dsa_slave_port_obj_add()
764 if (dsa_port_offloads_bridge_port(dp, obj->orig_dev)) in dsa_slave_port_obj_add()
770 if (!dsa_port_offloads_bridge_dev(dp, obj->orig_dev)) in dsa_slave_port_obj_add()
773 err = dsa_port_mrp_add(dp, SWITCHDEV_OBJ_MRP(obj)); in dsa_slave_port_obj_add()
776 if (!dsa_port_offloads_bridge_dev(dp, obj->orig_dev)) in dsa_slave_port_obj_add()
779 err = dsa_port_mrp_add_ring_role(dp, in dsa_slave_port_obj_add()
793 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_del() local
796 if (dsa_port_skip_vlan_configuration(dp)) in dsa_slave_vlan_del()
801 return dsa_port_vlan_del(dp, vlan); in dsa_slave_vlan_del()
807 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_host_vlan_del() local
811 if (!dp->bridge) in dsa_slave_host_vlan_del()
814 if (dsa_port_skip_vlan_configuration(dp)) in dsa_slave_host_vlan_del()
819 return dsa_port_host_vlan_del(dp, vlan); in dsa_slave_host_vlan_del()
825 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_port_obj_del() local
828 if (ctx && ctx != dp) in dsa_slave_port_obj_del()
833 if (!dsa_port_offloads_bridge_port(dp, obj->orig_dev)) in dsa_slave_port_obj_del()
836 err = dsa_port_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj)); in dsa_slave_port_obj_del()
839 if (!dsa_port_offloads_bridge_dev(dp, obj->orig_dev)) in dsa_slave_port_obj_del()
842 err = dsa_port_bridge_host_mdb_del(dp, SWITCHDEV_OBJ_PORT_MDB(obj)); in dsa_slave_port_obj_del()
845 if (dsa_port_offloads_bridge_port(dp, obj->orig_dev)) in dsa_slave_port_obj_del()
851 if (!dsa_port_offloads_bridge_dev(dp, obj->orig_dev)) in dsa_slave_port_obj_del()
854 err = dsa_port_mrp_del(dp, SWITCHDEV_OBJ_MRP(obj)); in dsa_slave_port_obj_del()
857 if (!dsa_port_offloads_bridge_dev(dp, obj->orig_dev)) in dsa_slave_port_obj_del()
860 err = dsa_port_mrp_del_ring_role(dp, in dsa_slave_port_obj_del()
887 struct dsa_switch *ds = p->dp->ds; in dsa_skb_tx_timestamp()
895 ds->ops->port_txtstamp(ds, p->dp->index, skb); in dsa_skb_tx_timestamp()
987 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_regs_len() local
988 struct dsa_switch *ds = dp->ds; in dsa_slave_get_regs_len()
991 return ds->ops->get_regs_len(ds, dp->index); in dsa_slave_get_regs_len()
999 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_regs() local
1000 struct dsa_switch *ds = dp->ds; in dsa_slave_get_regs()
1003 ds->ops->get_regs(ds, dp->index, regs, _p); in dsa_slave_get_regs()
1008 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_nway_reset() local
1010 return phylink_ethtool_nway_reset(dp->pl); in dsa_slave_nway_reset()
1015 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eeprom_len() local
1016 struct dsa_switch *ds = dp->ds; in dsa_slave_get_eeprom_len()
1030 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eeprom() local
1031 struct dsa_switch *ds = dp->ds; in dsa_slave_get_eeprom()
1042 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_eeprom() local
1043 struct dsa_switch *ds = dp->ds; in dsa_slave_set_eeprom()
1054 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_strings() local
1055 struct dsa_switch *ds = dp->ds; in dsa_slave_get_strings()
1065 ds->ops->get_strings(ds, dp->index, stringset, in dsa_slave_get_strings()
1077 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_ethtool_stats() local
1078 struct dsa_switch *ds = dp->ds; in dsa_slave_get_ethtool_stats()
1100 ds->ops->get_ethtool_stats(ds, dp->index, data + 4); in dsa_slave_get_ethtool_stats()
1105 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_sset_count() local
1106 struct dsa_switch *ds = dp->ds; in dsa_slave_get_sset_count()
1112 count = ds->ops->get_sset_count(ds, dp->index, sset); in dsa_slave_get_sset_count()
1128 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eth_phy_stats() local
1129 struct dsa_switch *ds = dp->ds; in dsa_slave_get_eth_phy_stats()
1132 ds->ops->get_eth_phy_stats(ds, dp->index, phy_stats); in dsa_slave_get_eth_phy_stats()
1138 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eth_mac_stats() local
1139 struct dsa_switch *ds = dp->ds; in dsa_slave_get_eth_mac_stats()
1142 ds->ops->get_eth_mac_stats(ds, dp->index, mac_stats); in dsa_slave_get_eth_mac_stats()
1149 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eth_ctrl_stats() local
1150 struct dsa_switch *ds = dp->ds; in dsa_slave_get_eth_ctrl_stats()
1153 ds->ops->get_eth_ctrl_stats(ds, dp->index, ctrl_stats); in dsa_slave_get_eth_ctrl_stats()
1161 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_rmon_stats() local
1162 struct dsa_switch *ds = dp->ds; in dsa_slave_get_rmon_stats()
1165 ds->ops->get_rmon_stats(ds, dp->index, rmon_stats, ranges); in dsa_slave_get_rmon_stats()
1171 struct dsa_port *dp = dsa_slave_to_port(ndev); in dsa_slave_net_selftest() local
1172 struct dsa_switch *ds = dp->ds; in dsa_slave_net_selftest()
1175 ds->ops->self_test(ds, dp->index, etest, buf); in dsa_slave_net_selftest()
1185 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_mm() local
1186 struct dsa_switch *ds = dp->ds; in dsa_slave_get_mm()
1191 return ds->ops->get_mm(ds, dp->index, state); in dsa_slave_get_mm()
1197 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_mm() local
1198 struct dsa_switch *ds = dp->ds; in dsa_slave_set_mm()
1203 return ds->ops->set_mm(ds, dp->index, cfg, extack); in dsa_slave_set_mm()
1209 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_mm_stats() local
1210 struct dsa_switch *ds = dp->ds; in dsa_slave_get_mm_stats()
1213 ds->ops->get_mm_stats(ds, dp->index, stats); in dsa_slave_get_mm_stats()
1218 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_wol() local
1219 struct dsa_switch *ds = dp->ds; in dsa_slave_get_wol()
1221 phylink_ethtool_get_wol(dp->pl, w); in dsa_slave_get_wol()
1224 ds->ops->get_wol(ds, dp->index, w); in dsa_slave_get_wol()
1229 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_wol() local
1230 struct dsa_switch *ds = dp->ds; in dsa_slave_set_wol()
1233 phylink_ethtool_set_wol(dp->pl, w); in dsa_slave_set_wol()
1236 ret = ds->ops->set_wol(ds, dp->index, w); in dsa_slave_set_wol()
1243 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_eee() local
1244 struct dsa_switch *ds = dp->ds; in dsa_slave_set_eee()
1248 if (!dev->phydev || !dp->pl) in dsa_slave_set_eee()
1254 ret = ds->ops->set_mac_eee(ds, dp->index, e); in dsa_slave_set_eee()
1258 return phylink_ethtool_set_eee(dp->pl, e); in dsa_slave_set_eee()
1263 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eee() local
1264 struct dsa_switch *ds = dp->ds; in dsa_slave_get_eee()
1268 if (!dev->phydev || !dp->pl) in dsa_slave_get_eee()
1274 ret = ds->ops->get_mac_eee(ds, dp->index, e); in dsa_slave_get_eee()
1278 return phylink_ethtool_get_eee(dp->pl, e); in dsa_slave_get_eee()
1284 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_link_ksettings() local
1286 return phylink_ethtool_ksettings_get(dp->pl, cmd); in dsa_slave_get_link_ksettings()
1292 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_link_ksettings() local
1294 return phylink_ethtool_ksettings_set(dp->pl, cmd); in dsa_slave_set_link_ksettings()
1300 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_pause_stats() local
1301 struct dsa_switch *ds = dp->ds; in dsa_slave_get_pause_stats()
1304 ds->ops->get_pause_stats(ds, dp->index, pause_stats); in dsa_slave_get_pause_stats()
1310 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_pauseparam() local
1312 phylink_ethtool_get_pauseparam(dp->pl, pause); in dsa_slave_get_pauseparam()
1318 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_pauseparam() local
1320 return phylink_ethtool_set_pauseparam(dp->pl, pause); in dsa_slave_set_pauseparam()
1384 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_add_cls_matchall_mirred() local
1388 struct dsa_switch *ds = dp->ds; in dsa_slave_add_cls_matchall_mirred()
1421 err = ds->ops->port_mirror_add(ds, dp->index, mirror, ingress, extack); in dsa_slave_add_cls_matchall_mirred()
1438 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_add_cls_matchall_police() local
1442 struct dsa_switch *ds = dp->ds; in dsa_slave_add_cls_matchall_police()
1482 err = ds->ops->port_policer_add(ds, dp->index, policer); in dsa_slave_add_cls_matchall_police()
1513 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_del_cls_matchall() local
1515 struct dsa_switch *ds = dp->ds; in dsa_slave_del_cls_matchall()
1526 ds->ops->port_mirror_del(ds, dp->index, in dsa_slave_del_cls_matchall()
1531 ds->ops->port_policer_del(ds, dp->index); in dsa_slave_del_cls_matchall()
1562 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_add_cls_flower() local
1563 struct dsa_switch *ds = dp->ds; in dsa_slave_add_cls_flower()
1564 int port = dp->index; in dsa_slave_add_cls_flower()
1576 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_del_cls_flower() local
1577 struct dsa_switch *ds = dp->ds; in dsa_slave_del_cls_flower()
1578 int port = dp->index; in dsa_slave_del_cls_flower()
1590 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_stats_cls_flower() local
1591 struct dsa_switch *ds = dp->ds; in dsa_slave_stats_cls_flower()
1592 int port = dp->index; in dsa_slave_stats_cls_flower()
1702 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_setup_tc() local
1703 struct dsa_switch *ds = dp->ds; in dsa_slave_setup_tc()
1709 return dsa_slave_setup_ft_block(ds, dp->index, type_data); in dsa_slave_setup_tc()
1717 return ds->ops->port_setup_tc(ds, dp->index, type, type_data); in dsa_slave_setup_tc()
1723 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_rxnfc() local
1724 struct dsa_switch *ds = dp->ds; in dsa_slave_get_rxnfc()
1729 return ds->ops->get_rxnfc(ds, dp->index, nfc, rule_locs); in dsa_slave_get_rxnfc()
1735 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_rxnfc() local
1736 struct dsa_switch *ds = dp->ds; in dsa_slave_set_rxnfc()
1741 return ds->ops->set_rxnfc(ds, dp->index, nfc); in dsa_slave_set_rxnfc()
1748 struct dsa_switch *ds = p->dp->ds; in dsa_slave_get_ts_info()
1753 return ds->ops->get_ts_info(ds, p->dp->index, ts); in dsa_slave_get_ts_info()
1759 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_rx_add_vid() local
1767 struct dsa_switch *ds = dp->ds; in dsa_slave_vlan_rx_add_vid()
1773 ret = dsa_port_vlan_add(dp, &vlan, &extack); in dsa_slave_vlan_rx_add_vid()
1781 ret = dsa_port_host_vlan_add(dp, &vlan, &extack); in dsa_slave_vlan_rx_add_vid()
1784 netdev_err(dev, "CPU port %d: %s\n", dp->cpu_dp->index, in dsa_slave_vlan_rx_add_vid()
1802 list_add_tail(&v->list, &dp->user_vlans); in dsa_slave_vlan_rx_add_vid()
1825 dsa_port_host_vlan_del(dp, &vlan); in dsa_slave_vlan_rx_add_vid()
1826 dsa_port_vlan_del(dp, &vlan); in dsa_slave_vlan_rx_add_vid()
1834 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_rx_kill_vid() local
1840 struct dsa_switch *ds = dp->ds; in dsa_slave_vlan_rx_kill_vid()
1845 err = dsa_port_vlan_del(dp, &vlan); in dsa_slave_vlan_rx_kill_vid()
1849 err = dsa_port_host_vlan_del(dp, &vlan); in dsa_slave_vlan_rx_kill_vid()
1859 v = dsa_vlan_find(&dp->user_vlans, &vlan); in dsa_slave_vlan_rx_kill_vid()
2002 static void dsa_bridge_mtu_normalization(struct dsa_port *dp) in dsa_bridge_mtu_normalization() argument
2010 if (!dp->ds->mtu_enforcement_ingress) in dsa_bridge_mtu_normalization()
2013 if (!dp->bridge) in dsa_bridge_mtu_normalization()
2029 if (!dsa_port_bridge_same(dp, other_dp)) in dsa_bridge_mtu_normalization()
2055 err = dsa_hw_port_list_set_mtu(&hw_port_list, dp->slave->mtu); in dsa_bridge_mtu_normalization()
2072 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_change_mtu() local
2073 struct dsa_port *cpu_dp = dp->cpu_dp; in dsa_slave_change_mtu()
2074 struct dsa_switch *ds = dp->ds; in dsa_slave_change_mtu()
2100 if (dp == other_dp) in dsa_slave_change_mtu()
2135 err = ds->ops->port_change_mtu(ds, dp->index, new_mtu); in dsa_slave_change_mtu()
2141 dsa_bridge_mtu_normalization(dp); in dsa_slave_change_mtu()
2158 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_dcbnl_set_default_prio() local
2159 struct dsa_switch *ds = dp->ds; in dsa_slave_dcbnl_set_default_prio()
2161 int err, port = dp->index; in dsa_slave_dcbnl_set_default_prio()
2185 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_dcbnl_add_dscp_prio() local
2186 struct dsa_switch *ds = dp->ds; in dsa_slave_dcbnl_add_dscp_prio()
2188 int err, port = dp->index; in dsa_slave_dcbnl_add_dscp_prio()
2238 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_dcbnl_del_default_prio() local
2239 struct dsa_switch *ds = dp->ds; in dsa_slave_dcbnl_del_default_prio()
2241 int err, port = dp->index; in dsa_slave_dcbnl_del_default_prio()
2265 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_dcbnl_del_dscp_prio() local
2266 struct dsa_switch *ds = dp->ds; in dsa_slave_dcbnl_del_dscp_prio()
2267 int err, port = dp->index; in dsa_slave_dcbnl_del_dscp_prio()
2310 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_dcbnl_init() local
2311 struct dsa_switch *ds = dp->ds; in dsa_slave_dcbnl_init()
2312 int port = dp->index; in dsa_slave_dcbnl_init()
2400 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_stats64() local
2401 struct dsa_switch *ds = dp->ds; in dsa_slave_get_stats64()
2404 ds->ops->get_stats64(ds, dp->index, s); in dsa_slave_get_stats64()
2412 struct dsa_port *dp = dsa_slave_to_port(ctx->dev); in dsa_slave_fill_forward_path() local
2413 struct net_device *master = dsa_port_to_master(dp); in dsa_slave_fill_forward_path()
2414 struct dsa_port *cpu_dp = dp->cpu_dp; in dsa_slave_fill_forward_path()
2419 path->dsa.port = dp->index; in dsa_slave_fill_forward_path()
2454 const struct dsa_port *dp = dsa_to_port(ds, port); in dsa_port_phylink_mac_change() local
2456 if (dp->pl) in dsa_port_phylink_mac_change()
2457 phylink_mac_change(dp->pl, up); in dsa_port_phylink_mac_change()
2464 struct dsa_port *dp = container_of(config, struct dsa_port, pl_config); in dsa_slave_phylink_fixed_state() local
2465 struct dsa_switch *ds = dp->ds; in dsa_slave_phylink_fixed_state()
2470 ds->ops->phylink_fixed_state(ds, dp->index, state); in dsa_slave_phylink_fixed_state()
2477 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_phy_connect() local
2478 struct dsa_switch *ds = dp->ds; in dsa_slave_phy_connect()
2488 return phylink_connect_phy(dp->pl, slave_dev->phydev); in dsa_slave_phy_connect()
2493 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_phy_setup() local
2494 struct device_node *port_dn = dp->dn; in dsa_slave_phy_setup()
2495 struct dsa_switch *ds = dp->ds; in dsa_slave_phy_setup()
2499 dp->pl_config.dev = &slave_dev->dev; in dsa_slave_phy_setup()
2500 dp->pl_config.type = PHYLINK_NETDEV; in dsa_slave_phy_setup()
2507 dp->pl_config.get_fixed_state = dsa_slave_phylink_fixed_state; in dsa_slave_phy_setup()
2508 dp->pl_config.poll_fixed_state = true; in dsa_slave_phy_setup()
2511 ret = dsa_port_phylink_create(dp); in dsa_slave_phy_setup()
2516 phy_flags = ds->ops->get_phy_flags(ds, dp->index); in dsa_slave_phy_setup()
2518 ret = phylink_of_phy_connect(dp->pl, port_dn, phy_flags); in dsa_slave_phy_setup()
2523 ret = dsa_slave_phy_connect(slave_dev, dp->index, phy_flags); in dsa_slave_phy_setup()
2528 dsa_port_phylink_destroy(dp); in dsa_slave_phy_setup()
2536 struct dsa_port *dp = dsa_slave_to_port(slave); in dsa_slave_setup_tagger() local
2537 struct net_device *master = dsa_port_to_master(dp); in dsa_slave_setup_tagger()
2539 const struct dsa_port *cpu_dp = dp->cpu_dp; in dsa_slave_setup_tagger()
2540 const struct dsa_switch *ds = dp->ds; in dsa_slave_setup_tagger()
2564 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_suspend() local
2572 phylink_stop(dp->pl); in dsa_slave_suspend()
2580 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_resume() local
2588 phylink_start(dp->pl); in dsa_slave_resume()
2654 p->dp = port; in dsa_slave_create()
2708 phylink_disconnect_phy(p->dp->pl); in dsa_slave_create()
2710 dsa_port_phylink_destroy(p->dp); in dsa_slave_create()
2723 struct dsa_port *dp = dsa_slave_to_port(slave_dev); in dsa_slave_destroy() local
2730 phylink_disconnect_phy(dp->pl); in dsa_slave_destroy()
2733 dsa_port_phylink_destroy(dp); in dsa_slave_destroy()
2743 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_change_master() local
2744 struct dsa_switch *ds = dp->ds; in dsa_slave_change_master()
2789 err = dsa_port_change_master(dp, master, extack); in dsa_slave_change_master()
2804 if (is_zero_ether_addr(dp->mac)) in dsa_slave_change_master()
2825 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_changeupper() local
2836 err = dsa_port_bridge_join(dp, info->upper_dev, extack); in dsa_slave_changeupper()
2838 dsa_bridge_mtu_normalization(dp); in dsa_slave_changeupper()
2846 dsa_port_bridge_leave(dp, info->upper_dev); in dsa_slave_changeupper()
2851 err = dsa_port_lag_join(dp, info->upper_dev, in dsa_slave_changeupper()
2860 dsa_port_lag_leave(dp, info->upper_dev); in dsa_slave_changeupper()
2865 err = dsa_port_hsr_join(dp, info->upper_dev); in dsa_slave_changeupper()
2873 dsa_port_hsr_leave(dp, info->upper_dev); in dsa_slave_changeupper()
2884 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_prechangeupper() local
2890 dsa_port_pre_bridge_leave(dp, info->upper_dev); in dsa_slave_prechangeupper()
2892 dsa_port_pre_lag_leave(dp, info->upper_dev); in dsa_slave_prechangeupper()
2907 struct dsa_port *dp; in dsa_slave_lag_changeupper() local
2916 dp = dsa_slave_to_port(lower); in dsa_slave_lag_changeupper()
2917 if (!dp->lag) in dsa_slave_lag_changeupper()
2939 struct dsa_port *dp; in dsa_slave_lag_prechangeupper() local
2948 dp = dsa_slave_to_port(lower); in dsa_slave_lag_prechangeupper()
2949 if (!dp->lag) in dsa_slave_lag_prechangeupper()
2967 struct dsa_port *dp; in dsa_prevent_bridging_8021q_upper() local
2978 dp = dsa_slave_to_port(slave); in dsa_prevent_bridging_8021q_upper()
2979 br = dsa_port_bridge_dev_get(dp); in dsa_prevent_bridging_8021q_upper()
2998 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_check_8021q_upper() local
2999 struct net_device *br = dsa_port_bridge_dev_get(dp); in dsa_slave_check_8021q_upper()
3030 struct dsa_port *dp; in dsa_slave_prechangeupper_sanity_check() local
3036 dp = dsa_slave_to_port(dev); in dsa_slave_prechangeupper_sanity_check()
3037 ds = dp->ds; in dsa_slave_prechangeupper_sanity_check()
3040 err = ds->ops->port_prechangeupper(ds, dp->index, info); in dsa_slave_prechangeupper_sanity_check()
3196 struct dsa_port *dp; in dsa_tree_migrate_ports_from_lag_master() local
3199 dsa_tree_for_each_user_port(dp, dst) { in dsa_tree_migrate_ports_from_lag_master()
3200 if (dsa_port_to_master(dp) != lag_dev) in dsa_tree_migrate_ports_from_lag_master()
3203 err = dsa_slave_change_master(dp->slave, new_master, NULL); in dsa_tree_migrate_ports_from_lag_master()
3205 netdev_err(dp->slave, in dsa_tree_migrate_ports_from_lag_master()
3219 struct dsa_port *dp; in dsa_master_lag_join() local
3226 dsa_tree_for_each_user_port(dp, dst) { in dsa_master_lag_join()
3227 if (dsa_port_to_master(dp) != master) in dsa_master_lag_join()
3230 err = dsa_slave_change_master(dp->slave, lag_dev, extack); in dsa_master_lag_join()
3238 dsa_tree_for_each_user_port_continue_reverse(dp, dst) { in dsa_master_lag_join()
3239 if (dsa_port_to_master(dp) != lag_dev) in dsa_master_lag_join()
3242 err = dsa_slave_change_master(dp->slave, master, NULL); in dsa_master_lag_join()
3244 netdev_err(dp->slave, in dsa_master_lag_join()
3258 struct dsa_port *dp, *cpu_dp = lag_dev->dsa_ptr; in dsa_master_lag_leave() local
3275 dsa_tree_for_each_user_port(dp, dst) in dsa_master_lag_leave()
3276 if (dsa_port_to_master(dp) == lag_dev) in dsa_master_lag_leave()
3277 dp->cpu_dp = new_cpu_dp; in dsa_master_lag_leave()
3377 struct dsa_port *dp; in dsa_slave_netdevice_event() local
3381 dp = dsa_slave_to_port(dev); in dsa_slave_netdevice_event()
3383 err = dsa_port_lag_change(dp, info->lower_state_info); in dsa_slave_netdevice_event()
3390 dp = dev->dsa_ptr; in dsa_slave_netdevice_event()
3392 err = dsa_port_lag_change(dp, info->lower_state_info); in dsa_slave_netdevice_event()
3428 struct dsa_port *dp, *cpu_dp; in dsa_slave_netdevice_event() local
3440 list_for_each_entry(dp, &dst->ports, list) { in dsa_slave_netdevice_event()
3441 if (!dsa_port_is_user(dp)) in dsa_slave_netdevice_event()
3444 if (dp->cpu_dp != cpu_dp) in dsa_slave_netdevice_event()
3447 list_add(&dp->slave->close_list, &close_list); in dsa_slave_netdevice_event()
3481 struct dsa_port *dp; in dsa_slave_switchdev_event_work() local
3484 dp = dsa_slave_to_port(dev); in dsa_slave_switchdev_event_work()
3485 ds = dp->ds; in dsa_slave_switchdev_event_work()
3490 err = dsa_port_bridge_host_fdb_add(dp, addr, vid); in dsa_slave_switchdev_event_work()
3491 else if (dp->lag) in dsa_slave_switchdev_event_work()
3492 err = dsa_port_lag_fdb_add(dp, addr, vid); in dsa_slave_switchdev_event_work()
3494 err = dsa_port_fdb_add(dp, addr, vid); in dsa_slave_switchdev_event_work()
3498 dp->index, addr, vid, err); in dsa_slave_switchdev_event_work()
3506 err = dsa_port_bridge_host_fdb_del(dp, addr, vid); in dsa_slave_switchdev_event_work()
3507 else if (dp->lag) in dsa_slave_switchdev_event_work()
3508 err = dsa_port_lag_fdb_del(dp, addr, vid); in dsa_slave_switchdev_event_work()
3510 err = dsa_port_fdb_del(dp, addr, vid); in dsa_slave_switchdev_event_work()
3514 dp->index, addr, vid, err); in dsa_slave_switchdev_event_work()
3526 const struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_foreign_dev_check() local
3527 struct dsa_switch_tree *dst = dp->ds->dst; in dsa_foreign_dev_check()
3545 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_fdb_event() local
3547 struct dsa_switch *ds = dp->ds; in dsa_slave_fdb_event()
3549 if (ctx && ctx != dp) in dsa_slave_fdb_event()
3552 if (!dp->bridge) in dsa_slave_fdb_event()
3556 if (dsa_port_offloads_bridge_port(dp, orig_dev)) in dsa_slave_fdb_event()
3577 if (dp->lag && !host_addr) { in dsa_slave_fdb_event()