Lines Matching full:ds

406 mt753x_preferred_default_local_cpu_port(struct dsa_switch *ds)  in mt753x_preferred_default_local_cpu_port()  argument
408 struct dsa_port *cpu_dp = dsa_to_port(ds, 6); in mt753x_preferred_default_local_cpu_port()
418 mt7530_pad_clk_setup(struct dsa_switch *ds, phy_interface_t interface) in mt7530_pad_clk_setup() argument
420 struct mt7530_priv *priv = ds->priv; in mt7530_pad_clk_setup()
500 mt7531_pad_setup(struct dsa_switch *ds, phy_interface_t interface) in mt7531_pad_setup() argument
596 mt7530_mib_reset(struct dsa_switch *ds) in mt7530_mib_reset() argument
598 struct mt7530_priv *priv = ds->priv; in mt7530_mib_reset()
830 mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, in mt7530_get_strings() argument
843 mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, in mt7530_get_ethtool_stats() argument
846 struct mt7530_priv *priv = ds->priv; in mt7530_get_ethtool_stats()
864 mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) in mt7530_get_sset_count() argument
873 mt7530_set_ageing_time(struct dsa_switch *ds, unsigned int msecs) in mt7530_set_ageing_time() argument
875 struct mt7530_priv *priv = ds->priv; in mt7530_set_ageing_time()
930 static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) in mt7530_setup_port5() argument
932 struct mt7530_priv *priv = ds->priv; in mt7530_setup_port5()
963 dev_err(ds->dev, "Unsupported p5_intf_sel %d\n", in mt7530_setup_port5()
976 if (!dsa_is_dsa_port(priv->ds, 5) && in mt7530_setup_port5()
992 dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, intf_sel=%s, phy-mode=%s\n", in mt7530_setup_port5()
1018 mt753x_cpu_port_enable(struct dsa_switch *ds, int port) in mt753x_cpu_port_enable() argument
1020 struct mt7530_priv *priv = ds->priv; in mt753x_cpu_port_enable()
1025 ret = priv->info->cpu_port_config(ds, port); in mt753x_cpu_port_enable()
1053 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt753x_cpu_port_enable()
1063 mt7530_port_enable(struct dsa_switch *ds, int port, in mt7530_port_enable() argument
1066 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_enable()
1067 struct mt7530_priv *priv = ds->priv; in mt7530_port_enable()
1091 mt7530_port_disable(struct dsa_switch *ds, int port) in mt7530_port_disable() argument
1093 struct mt7530_priv *priv = ds->priv; in mt7530_port_disable()
1109 mt7530_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) in mt7530_port_change_mtu() argument
1111 struct mt7530_priv *priv = ds->priv; in mt7530_port_change_mtu()
1119 if (!dsa_is_cpu_port(ds, port)) in mt7530_port_change_mtu()
1149 mt7530_port_max_mtu(struct dsa_switch *ds, int port) in mt7530_port_max_mtu() argument
1155 mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) in mt7530_stp_state_set() argument
1157 struct mt7530_priv *priv = ds->priv; in mt7530_stp_state_set()
1184 mt7530_port_pre_bridge_flags(struct dsa_switch *ds, int port, in mt7530_port_pre_bridge_flags() argument
1196 mt7530_port_bridge_flags(struct dsa_switch *ds, int port, in mt7530_port_bridge_flags() argument
1200 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_flags()
1222 mt7530_port_bridge_join(struct dsa_switch *ds, int port, in mt7530_port_bridge_join() argument
1226 struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; in mt7530_port_bridge_join()
1229 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_join()
1233 dsa_switch_for_each_user_port(other_dp, ds) { in mt7530_port_bridge_join()
1270 mt7530_port_set_vlan_unaware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_unaware() argument
1272 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_unaware()
1279 if (dsa_port_bridge_dev_get(dsa_to_port(ds, port))) in mt7530_port_set_vlan_unaware()
1294 if (dsa_is_user_port(ds, i) && in mt7530_port_set_vlan_unaware()
1295 dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) { in mt7530_port_set_vlan_unaware()
1305 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_set_vlan_unaware()
1309 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt7530_port_set_vlan_unaware()
1316 mt7530_port_set_vlan_aware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_aware() argument
1318 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_aware()
1323 if (dsa_is_user_port(ds, port)) { in mt7530_port_set_vlan_aware()
1356 mt7530_port_bridge_leave(struct dsa_switch *ds, int port, in mt7530_port_bridge_leave() argument
1359 struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; in mt7530_port_bridge_leave()
1361 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_leave()
1365 dsa_switch_for_each_user_port(other_dp, ds) { in mt7530_port_bridge_leave()
1403 mt7530_port_fdb_add(struct dsa_switch *ds, int port, in mt7530_port_fdb_add() argument
1407 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_add()
1420 mt7530_port_fdb_del(struct dsa_switch *ds, int port, in mt7530_port_fdb_del() argument
1424 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_del()
1437 mt7530_port_fdb_dump(struct dsa_switch *ds, int port, in mt7530_port_fdb_dump() argument
1440 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_dump()
1472 mt7530_port_mdb_add(struct dsa_switch *ds, int port, in mt7530_port_mdb_add() argument
1476 struct mt7530_priv *priv = ds->priv; in mt7530_port_mdb_add()
1499 mt7530_port_mdb_del(struct dsa_switch *ds, int port, in mt7530_port_mdb_del() argument
1503 struct mt7530_priv *priv = ds->priv; in mt7530_port_mdb_del()
1554 mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, in mt7530_port_vlan_filtering() argument
1557 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_vlan_filtering()
1566 mt7530_port_set_vlan_aware(ds, port); in mt7530_port_vlan_filtering()
1567 mt7530_port_set_vlan_aware(ds, cpu_dp->index); in mt7530_port_vlan_filtering()
1569 mt7530_port_set_vlan_unaware(ds, port); in mt7530_port_vlan_filtering()
1579 struct dsa_port *dp = dsa_to_port(priv->ds, entry->port); in mt7530_hw_vlan_add()
1673 mt7530_port_vlan_add(struct dsa_switch *ds, int port, in mt7530_port_vlan_add() argument
1680 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_add()
1695 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_add()
1704 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_add()
1718 mt7530_port_vlan_del(struct dsa_switch *ds, int port, in mt7530_port_vlan_del() argument
1722 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_del()
1737 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_del()
1763 static int mt753x_port_mirror_add(struct dsa_switch *ds, int port, in mt753x_port_mirror_add() argument
1767 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_add()
1801 static void mt753x_port_mirror_del(struct dsa_switch *ds, int port, in mt753x_port_mirror_del() argument
1804 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_del()
1825 mtk_get_tag_protocol(struct dsa_switch *ds, int port, in mtk_get_tag_protocol() argument
2064 struct dsa_switch *ds = priv->ds; in mt7530_setup_mdio_irq() local
2068 if (BIT(p) & ds->phys_mii_mask) { in mt7530_setup_mdio_irq()
2072 ds->user_mii_bus->irq[p] = irq; in mt7530_setup_mdio_irq()
2130 if (BIT(p) & priv->ds->phys_mii_mask) { in mt7530_free_mdio_irq()
2156 struct dsa_switch *ds = priv->ds; in mt7530_setup_mdio() local
2166 ds->user_mii_bus = bus; in mt7530_setup_mdio()
2175 bus->phy_mask = ~ds->phys_mii_mask; in mt7530_setup_mdio()
2191 mt7530_setup(struct dsa_switch *ds) in mt7530_setup() argument
2193 struct mt7530_priv *priv = ds->priv; in mt7530_setup()
2207 dsa_switch_for_each_cpu_port(cpu_dp, ds) { in mt7530_setup()
2216 dev_err(ds->dev, "parent OF node of DSA conduit not found"); in mt7530_setup()
2220 ds->assisted_learning_on_cpu_port = true; in mt7530_setup()
2221 ds->mtu_enforcement_ingress = true; in mt7530_setup()
2297 mt7530_mib_reset(ds); in mt7530_setup()
2307 if (dsa_is_cpu_port(ds, i)) { in mt7530_setup()
2308 ret = mt753x_cpu_port_enable(ds, i); in mt7530_setup()
2312 mt7530_port_disable(ds, i); in mt7530_setup()
2332 if (!dsa_is_unused_port(ds, 5)) { in mt7530_setup()
2334 ret = of_get_phy_mode(dsa_to_port(ds, 5)->dn, &interface); in mt7530_setup()
2359 id = of_mdio_parse_addr(ds->dev, phy_node); in mt7530_setup()
2379 mt7530_setup_port5(ds, interface); in mt7530_setup()
2390 mt7531_setup_common(struct dsa_switch *ds) in mt7531_setup_common() argument
2392 struct mt7530_priv *priv = ds->priv; in mt7531_setup_common()
2398 mt7530_mib_reset(ds); in mt7531_setup_common()
2414 if (dsa_is_cpu_port(ds, i)) { in mt7531_setup_common()
2415 ret = mt753x_cpu_port_enable(ds, i); in mt7531_setup_common()
2419 mt7530_port_disable(ds, i); in mt7531_setup_common()
2440 mt7531_setup(struct dsa_switch *ds) in mt7531_setup() argument
2442 struct mt7530_priv *priv = ds->priv; in mt7531_setup()
2491 /* Let ds->user_mii_bus be able to access external phy. */ in mt7531_setup()
2499 dev_dbg(ds->dev, "P5 support %s interface\n", in mt7531_setup()
2521 mt7531_setup_common(ds); in mt7531_setup()
2528 ds->assisted_learning_on_cpu_port = true; in mt7531_setup()
2529 ds->mtu_enforcement_ingress = true; in mt7531_setup()
2534 static void mt7530_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7530_mac_port_get_caps() argument
2565 static void mt7531_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7531_mac_port_get_caps() argument
2568 struct mt7530_priv *priv = ds->priv; in mt7531_mac_port_get_caps()
2596 static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7988_mac_port_get_caps() argument
2616 mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state) in mt753x_pad_setup() argument
2618 struct mt7530_priv *priv = ds->priv; in mt753x_pad_setup()
2620 return priv->info->pad_setup(ds, state->interface); in mt753x_pad_setup()
2624 mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7530_mac_config() argument
2627 struct mt7530_priv *priv = ds->priv; in mt7530_mac_config()
2633 mt7530_setup_port5(priv->ds, interface); in mt7530_mac_config()
2691 mt7988_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7988_mac_config() argument
2694 if (dsa_is_cpu_port(ds, port) && in mt7988_mac_config()
2702 mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7531_mac_config() argument
2705 struct mt7530_priv *priv = ds->priv; in mt7531_mac_config()
2719 dp = dsa_to_port(ds, port); in mt7531_mac_config()
2736 mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt753x_mac_config() argument
2739 struct mt7530_priv *priv = ds->priv; in mt753x_mac_config()
2741 return priv->info->mac_port_config(ds, port, mode, state->interface); in mt753x_mac_config()
2745 mt753x_phylink_mac_select_pcs(struct dsa_switch *ds, int port, in mt753x_phylink_mac_select_pcs() argument
2748 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_select_pcs()
2763 mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt753x_phylink_mac_config() argument
2766 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_config()
2779 if (mt753x_mac_config(ds, port, mode, state) < 0) in mt753x_phylink_mac_config()
2789 mt753x_pad_setup(ds, state); in mt753x_phylink_mac_config()
2791 if (mt753x_mac_config(ds, port, mode, state) < 0) in mt753x_phylink_mac_config()
2798 dev_err(ds->dev, "%s: unsupported %s port: %i\n", in mt753x_phylink_mac_config()
2810 if (port == 5 && dsa_is_user_port(ds, 5)) in mt753x_phylink_mac_config()
2817 static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_down() argument
2821 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_down()
2826 static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_up() argument
2833 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_up()
2878 mt7531_cpu_port_config(struct dsa_switch *ds, int port) in mt7531_cpu_port_config() argument
2880 struct mt7530_priv *priv = ds->priv; in mt7531_cpu_port_config()
2908 ret = mt7531_mac_config(ds, port, MLO_AN_FIXED, interface); in mt7531_cpu_port_config()
2913 mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL, in mt7531_cpu_port_config()
2920 mt7988_cpu_port_config(struct dsa_switch *ds, int port) in mt7988_cpu_port_config() argument
2922 struct mt7530_priv *priv = ds->priv; in mt7988_cpu_port_config()
2927 mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, in mt7988_cpu_port_config()
2934 static void mt753x_phylink_get_caps(struct dsa_switch *ds, int port, in mt753x_phylink_get_caps() argument
2937 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_get_caps()
2943 priv->info->mac_port_get_caps(ds, port, config); in mt753x_phylink_get_caps()
3013 mt753x_setup(struct dsa_switch *ds) in mt753x_setup() argument
3015 struct mt7530_priv *priv = ds->priv; in mt753x_setup()
3019 for (i = 0; i < priv->ds->num_ports; i++) { in mt753x_setup()
3026 ret = priv->info->sw_setup(ds); in mt753x_setup()
3047 static int mt753x_get_mac_eee(struct dsa_switch *ds, int port, in mt753x_get_mac_eee() argument
3050 struct mt7530_priv *priv = ds->priv; in mt753x_get_mac_eee()
3059 static int mt753x_set_mac_eee(struct dsa_switch *ds, int port, in mt753x_set_mac_eee() argument
3062 struct mt7530_priv *priv = ds->priv; in mt753x_set_mac_eee()
3077 static int mt7988_pad_setup(struct dsa_switch *ds, phy_interface_t interface) in mt7988_pad_setup() argument
3082 static int mt7988_setup(struct dsa_switch *ds) in mt7988_setup() argument
3084 struct mt7530_priv *priv = ds->priv; in mt7988_setup()
3095 return mt7531_setup_common(ds); in mt7988_setup()
3194 priv->ds = devm_kzalloc(dev, sizeof(*priv->ds), GFP_KERNEL); in mt7530_probe_common()
3195 if (!priv->ds) in mt7530_probe_common()
3198 priv->ds->dev = dev; in mt7530_probe_common()
3199 priv->ds->num_ports = MT7530_NUM_PORTS; in mt7530_probe_common()
3219 priv->ds->priv = priv; in mt7530_probe_common()
3220 priv->ds->ops = &mt7530_switch_ops; in mt7530_probe_common()
3234 dsa_unregister_switch(priv->ds); in mt7530_remove_common()