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
844 mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, in mt7530_get_ethtool_stats() argument
847 struct mt7530_priv *priv = ds->priv; in mt7530_get_ethtool_stats()
865 mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) in mt7530_get_sset_count() argument
874 mt7530_set_ageing_time(struct dsa_switch *ds, unsigned int msecs) in mt7530_set_ageing_time() argument
876 struct mt7530_priv *priv = ds->priv; in mt7530_set_ageing_time()
931 static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) in mt7530_setup_port5() argument
933 struct mt7530_priv *priv = ds->priv; in mt7530_setup_port5()
964 dev_err(ds->dev, "Unsupported p5_intf_sel %d\n", in mt7530_setup_port5()
977 if (!dsa_is_dsa_port(priv->ds, 5) && in mt7530_setup_port5()
993 dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, intf_sel=%s, phy-mode=%s\n", in mt7530_setup_port5()
1019 mt753x_cpu_port_enable(struct dsa_switch *ds, int port) in mt753x_cpu_port_enable() argument
1021 struct mt7530_priv *priv = ds->priv; in mt753x_cpu_port_enable()
1026 ret = priv->info->cpu_port_config(ds, port); in mt753x_cpu_port_enable()
1054 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt753x_cpu_port_enable()
1064 mt7530_port_enable(struct dsa_switch *ds, int port, in mt7530_port_enable() argument
1067 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_enable()
1068 struct mt7530_priv *priv = ds->priv; in mt7530_port_enable()
1092 mt7530_port_disable(struct dsa_switch *ds, int port) in mt7530_port_disable() argument
1094 struct mt7530_priv *priv = ds->priv; in mt7530_port_disable()
1110 mt7530_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) in mt7530_port_change_mtu() argument
1112 struct mt7530_priv *priv = ds->priv; in mt7530_port_change_mtu()
1120 if (!dsa_is_cpu_port(ds, port)) in mt7530_port_change_mtu()
1150 mt7530_port_max_mtu(struct dsa_switch *ds, int port) in mt7530_port_max_mtu() argument
1156 mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) in mt7530_stp_state_set() argument
1158 struct mt7530_priv *priv = ds->priv; in mt7530_stp_state_set()
1185 mt7530_port_pre_bridge_flags(struct dsa_switch *ds, int port, in mt7530_port_pre_bridge_flags() argument
1197 mt7530_port_bridge_flags(struct dsa_switch *ds, int port, in mt7530_port_bridge_flags() argument
1201 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_flags()
1223 mt7530_port_bridge_join(struct dsa_switch *ds, int port, in mt7530_port_bridge_join() argument
1227 struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; in mt7530_port_bridge_join()
1230 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_join()
1234 dsa_switch_for_each_user_port(other_dp, ds) { in mt7530_port_bridge_join()
1271 mt7530_port_set_vlan_unaware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_unaware() argument
1273 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_unaware()
1280 if (dsa_port_bridge_dev_get(dsa_to_port(ds, port))) in mt7530_port_set_vlan_unaware()
1295 if (dsa_is_user_port(ds, i) && in mt7530_port_set_vlan_unaware()
1296 dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) { in mt7530_port_set_vlan_unaware()
1306 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_set_vlan_unaware()
1310 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt7530_port_set_vlan_unaware()
1317 mt7530_port_set_vlan_aware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_aware() argument
1319 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_aware()
1324 if (dsa_is_user_port(ds, port)) { in mt7530_port_set_vlan_aware()
1357 mt7530_port_bridge_leave(struct dsa_switch *ds, int port, in mt7530_port_bridge_leave() argument
1360 struct dsa_port *dp = dsa_to_port(ds, port), *other_dp; in mt7530_port_bridge_leave()
1362 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_leave()
1366 dsa_switch_for_each_user_port(other_dp, ds) { in mt7530_port_bridge_leave()
1404 mt7530_port_fdb_add(struct dsa_switch *ds, int port, in mt7530_port_fdb_add() argument
1408 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_add()
1421 mt7530_port_fdb_del(struct dsa_switch *ds, int port, in mt7530_port_fdb_del() argument
1425 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_del()
1438 mt7530_port_fdb_dump(struct dsa_switch *ds, int port, in mt7530_port_fdb_dump() argument
1441 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_dump()
1473 mt7530_port_mdb_add(struct dsa_switch *ds, int port, in mt7530_port_mdb_add() argument
1477 struct mt7530_priv *priv = ds->priv; in mt7530_port_mdb_add()
1500 mt7530_port_mdb_del(struct dsa_switch *ds, int port, in mt7530_port_mdb_del() argument
1504 struct mt7530_priv *priv = ds->priv; in mt7530_port_mdb_del()
1555 mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, in mt7530_port_vlan_filtering() argument
1558 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_vlan_filtering()
1567 mt7530_port_set_vlan_aware(ds, port); in mt7530_port_vlan_filtering()
1568 mt7530_port_set_vlan_aware(ds, cpu_dp->index); in mt7530_port_vlan_filtering()
1570 mt7530_port_set_vlan_unaware(ds, port); in mt7530_port_vlan_filtering()
1580 struct dsa_port *dp = dsa_to_port(priv->ds, entry->port); in mt7530_hw_vlan_add()
1674 mt7530_port_vlan_add(struct dsa_switch *ds, int port, in mt7530_port_vlan_add() argument
1681 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_add()
1696 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_add()
1705 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_add()
1719 mt7530_port_vlan_del(struct dsa_switch *ds, int port, in mt7530_port_vlan_del() argument
1723 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_del()
1738 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_del()
1764 static int mt753x_port_mirror_add(struct dsa_switch *ds, int port, in mt753x_port_mirror_add() argument
1768 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_add()
1802 static void mt753x_port_mirror_del(struct dsa_switch *ds, int port, in mt753x_port_mirror_del() argument
1805 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_del()
1826 mtk_get_tag_protocol(struct dsa_switch *ds, int port, in mtk_get_tag_protocol() argument
2065 struct dsa_switch *ds = priv->ds; in mt7530_setup_mdio_irq() local
2069 if (BIT(p) & ds->phys_mii_mask) { in mt7530_setup_mdio_irq()
2073 ds->slave_mii_bus->irq[p] = irq; in mt7530_setup_mdio_irq()
2131 if (BIT(p) & priv->ds->phys_mii_mask) { in mt7530_free_mdio_irq()
2157 struct dsa_switch *ds = priv->ds; in mt7530_setup_mdio() local
2167 ds->slave_mii_bus = bus; in mt7530_setup_mdio()
2176 bus->phy_mask = ~ds->phys_mii_mask; in mt7530_setup_mdio()
2192 mt7530_setup(struct dsa_switch *ds) in mt7530_setup() argument
2194 struct mt7530_priv *priv = ds->priv; in mt7530_setup()
2208 dsa_switch_for_each_cpu_port(cpu_dp, ds) { in mt7530_setup()
2217 dev_err(ds->dev, "parent OF node of DSA master not found"); in mt7530_setup()
2221 ds->assisted_learning_on_cpu_port = true; in mt7530_setup()
2222 ds->mtu_enforcement_ingress = true; in mt7530_setup()
2298 mt7530_mib_reset(ds); in mt7530_setup()
2308 if (dsa_is_cpu_port(ds, i)) { in mt7530_setup()
2309 ret = mt753x_cpu_port_enable(ds, i); in mt7530_setup()
2313 mt7530_port_disable(ds, i); in mt7530_setup()
2333 if (!dsa_is_unused_port(ds, 5)) { in mt7530_setup()
2335 ret = of_get_phy_mode(dsa_to_port(ds, 5)->dn, &interface); in mt7530_setup()
2360 id = of_mdio_parse_addr(ds->dev, phy_node); in mt7530_setup()
2380 mt7530_setup_port5(ds, interface); in mt7530_setup()
2391 mt7531_setup_common(struct dsa_switch *ds) in mt7531_setup_common() argument
2393 struct mt7530_priv *priv = ds->priv; in mt7531_setup_common()
2399 mt7530_mib_reset(ds); in mt7531_setup_common()
2415 if (dsa_is_cpu_port(ds, i)) { in mt7531_setup_common()
2416 ret = mt753x_cpu_port_enable(ds, i); in mt7531_setup_common()
2420 mt7530_port_disable(ds, i); in mt7531_setup_common()
2441 mt7531_setup(struct dsa_switch *ds) in mt7531_setup() argument
2443 struct mt7530_priv *priv = ds->priv; in mt7531_setup()
2492 /* Let ds->slave_mii_bus be able to access external phy. */ in mt7531_setup()
2500 dev_dbg(ds->dev, "P5 support %s interface\n", in mt7531_setup()
2522 mt7531_setup_common(ds); in mt7531_setup()
2529 ds->assisted_learning_on_cpu_port = true; in mt7531_setup()
2530 ds->mtu_enforcement_ingress = true; in mt7531_setup()
2535 static void mt7530_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7530_mac_port_get_caps() argument
2566 static void mt7531_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7531_mac_port_get_caps() argument
2569 struct mt7530_priv *priv = ds->priv; in mt7531_mac_port_get_caps()
2597 static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7988_mac_port_get_caps() argument
2617 mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state) in mt753x_pad_setup() argument
2619 struct mt7530_priv *priv = ds->priv; in mt753x_pad_setup()
2621 return priv->info->pad_setup(ds, state->interface); in mt753x_pad_setup()
2625 mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7530_mac_config() argument
2628 struct mt7530_priv *priv = ds->priv; in mt7530_mac_config()
2634 mt7530_setup_port5(priv->ds, interface); in mt7530_mac_config()
2692 mt7988_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7988_mac_config() argument
2695 if (dsa_is_cpu_port(ds, port) && in mt7988_mac_config()
2703 mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7531_mac_config() argument
2706 struct mt7530_priv *priv = ds->priv; in mt7531_mac_config()
2720 dp = dsa_to_port(ds, port); in mt7531_mac_config()
2737 mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt753x_mac_config() argument
2740 struct mt7530_priv *priv = ds->priv; in mt753x_mac_config()
2742 return priv->info->mac_port_config(ds, port, mode, state->interface); in mt753x_mac_config()
2746 mt753x_phylink_mac_select_pcs(struct dsa_switch *ds, int port, in mt753x_phylink_mac_select_pcs() argument
2749 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_select_pcs()
2764 mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt753x_phylink_mac_config() argument
2767 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_config()
2780 if (mt753x_mac_config(ds, port, mode, state) < 0) in mt753x_phylink_mac_config()
2790 mt753x_pad_setup(ds, state); in mt753x_phylink_mac_config()
2792 if (mt753x_mac_config(ds, port, mode, state) < 0) in mt753x_phylink_mac_config()
2799 dev_err(ds->dev, "%s: unsupported %s port: %i\n", in mt753x_phylink_mac_config()
2811 if (port == 5 && dsa_is_user_port(ds, 5)) in mt753x_phylink_mac_config()
2818 static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_down() argument
2822 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_down()
2836 static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_up() argument
2843 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_up()
2889 mt7531_cpu_port_config(struct dsa_switch *ds, int port) in mt7531_cpu_port_config() argument
2891 struct mt7530_priv *priv = ds->priv; in mt7531_cpu_port_config()
2919 ret = mt7531_mac_config(ds, port, MLO_AN_FIXED, interface); in mt7531_cpu_port_config()
2926 mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL, in mt7531_cpu_port_config()
2933 mt7988_cpu_port_config(struct dsa_switch *ds, int port) in mt7988_cpu_port_config() argument
2935 struct mt7530_priv *priv = ds->priv; in mt7988_cpu_port_config()
2940 mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, in mt7988_cpu_port_config()
2947 static void mt753x_phylink_get_caps(struct dsa_switch *ds, int port, in mt753x_phylink_get_caps() argument
2950 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_get_caps()
2956 priv->info->mac_port_get_caps(ds, port, config); in mt753x_phylink_get_caps()
3026 mt753x_setup(struct dsa_switch *ds) in mt753x_setup() argument
3028 struct mt7530_priv *priv = ds->priv; in mt753x_setup()
3032 for (i = 0; i < priv->ds->num_ports; i++) { in mt753x_setup()
3039 ret = priv->info->sw_setup(ds); in mt753x_setup()
3060 static int mt753x_get_mac_eee(struct dsa_switch *ds, int port, in mt753x_get_mac_eee() argument
3063 struct mt7530_priv *priv = ds->priv; in mt753x_get_mac_eee()
3072 static int mt753x_set_mac_eee(struct dsa_switch *ds, int port, in mt753x_set_mac_eee() argument
3075 struct mt7530_priv *priv = ds->priv; in mt753x_set_mac_eee()
3090 static int mt7988_pad_setup(struct dsa_switch *ds, phy_interface_t interface) in mt7988_pad_setup() argument
3095 static int mt7988_setup(struct dsa_switch *ds) in mt7988_setup() argument
3097 struct mt7530_priv *priv = ds->priv; in mt7988_setup()
3108 return mt7531_setup_common(ds); in mt7988_setup()
3207 priv->ds = devm_kzalloc(dev, sizeof(*priv->ds), GFP_KERNEL); in mt7530_probe_common()
3208 if (!priv->ds) in mt7530_probe_common()
3211 priv->ds->dev = dev; in mt7530_probe_common()
3212 priv->ds->num_ports = MT7530_NUM_PORTS; in mt7530_probe_common()
3232 priv->ds->priv = priv; in mt7530_probe_common()
3233 priv->ds->ops = &mt7530_switch_ops; in mt7530_probe_common()
3247 dsa_unregister_switch(priv->ds); in mt7530_remove_common()