Lines Matching refs:ds

364 mt753x_preferred_default_local_cpu_port(struct dsa_switch *ds)  in mt753x_preferred_default_local_cpu_port()  argument
366 struct dsa_port *cpu_dp = dsa_to_port(ds, 6); in mt753x_preferred_default_local_cpu_port()
376 mt7530_setup_port6(struct dsa_switch *ds, phy_interface_t interface) in mt7530_setup_port6() argument
378 struct mt7530_priv *priv = ds->priv; in mt7530_setup_port6()
517 mt7530_mib_reset(struct dsa_switch *ds) in mt7530_mib_reset() argument
519 struct mt7530_priv *priv = ds->priv; in mt7530_mib_reset()
751 mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, in mt7530_get_strings() argument
779 mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, in mt7530_get_ethtool_stats() argument
782 struct mt7530_priv *priv = ds->priv; in mt7530_get_ethtool_stats()
795 mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) in mt7530_get_sset_count() argument
803 static void mt7530_get_eth_mac_stats(struct dsa_switch *ds, int port, in mt7530_get_eth_mac_stats() argument
806 struct mt7530_priv *priv = ds->priv; in mt7530_get_eth_mac_stats()
868 static void mt7530_get_rmon_stats(struct dsa_switch *ds, int port, in mt7530_get_rmon_stats() argument
872 struct mt7530_priv *priv = ds->priv; in mt7530_get_rmon_stats()
962 dsa_switch_for_each_user_port(dp, priv->ds) { in mt7530_stats_refresh()
984 static void mt7530_get_stats64(struct dsa_switch *ds, int port, in mt7530_get_stats64() argument
987 struct mt7530_priv *priv = ds->priv; in mt7530_get_stats64()
1004 static void mt7530_get_eth_ctrl_stats(struct dsa_switch *ds, int port, in mt7530_get_eth_ctrl_stats() argument
1007 struct mt7530_priv *priv = ds->priv; in mt7530_get_eth_ctrl_stats()
1017 mt7530_set_ageing_time(struct dsa_switch *ds, unsigned int msecs) in mt7530_set_ageing_time() argument
1019 struct mt7530_priv *priv = ds->priv; in mt7530_set_ageing_time()
1072 static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) in mt7530_setup_port5() argument
1074 struct mt7530_priv *priv = ds->priv; in mt7530_setup_port5()
1110 if (!dsa_is_dsa_port(priv->ds, 5) && in mt7530_setup_port5()
1126 dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, mode=%s, phy-mode=%s\n", val, in mt7530_setup_port5()
1341 mt753x_cpu_port_enable(struct dsa_switch *ds, int port) in mt753x_cpu_port_enable() argument
1343 struct mt7530_priv *priv = ds->priv; in mt753x_cpu_port_enable()
1365 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt753x_cpu_port_enable()
1373 mt7530_port_enable(struct dsa_switch *ds, int port, in mt7530_port_enable() argument
1376 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_enable()
1377 struct mt7530_priv *priv = ds->priv; in mt7530_port_enable()
1408 mt7530_port_disable(struct dsa_switch *ds, int port) in mt7530_port_disable() argument
1410 struct mt7530_priv *priv = ds->priv; in mt7530_port_disable()
1434 mt7530_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) in mt7530_port_change_mtu() argument
1436 struct mt7530_priv *priv = ds->priv; in mt7530_port_change_mtu()
1444 if (!dsa_is_cpu_port(ds, port)) in mt7530_port_change_mtu()
1474 mt7530_port_max_mtu(struct dsa_switch *ds, int port) in mt7530_port_max_mtu() argument
1480 mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) in mt7530_stp_state_set() argument
1482 struct mt7530_priv *priv = ds->priv; in mt7530_stp_state_set()
1512 struct dsa_port *dp = dsa_to_port(priv->ds, port), *other_dp; in mt7530_update_port_member()
1519 dsa_switch_for_each_user_port(other_dp, priv->ds) { in mt7530_update_port_member()
1558 mt7530_port_pre_bridge_flags(struct dsa_switch *ds, int port, in mt7530_port_pre_bridge_flags() argument
1570 mt7530_port_bridge_flags(struct dsa_switch *ds, int port, in mt7530_port_bridge_flags() argument
1574 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_flags()
1593 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_bridge_flags()
1607 mt7530_port_bridge_join(struct dsa_switch *ds, int port, in mt7530_port_bridge_join() argument
1611 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_join()
1670 mt7530_port_set_vlan_unaware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_unaware() argument
1672 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_unaware()
1679 if (dsa_port_bridge_dev_get(dsa_to_port(ds, port))) in mt7530_port_set_vlan_unaware()
1693 for (i = 0; i < priv->ds->num_ports; i++) { in mt7530_port_set_vlan_unaware()
1696 if (dsa_is_user_port(ds, i) && in mt7530_port_set_vlan_unaware()
1697 dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) { in mt7530_port_set_vlan_unaware()
1714 mt7530_port_set_vlan_aware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_aware() argument
1716 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_aware()
1721 if (dsa_is_user_port(ds, port)) { in mt7530_port_set_vlan_aware()
1754 mt7530_port_bridge_leave(struct dsa_switch *ds, int port, in mt7530_port_bridge_leave() argument
1757 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_leave()
1774 mt7530_port_fdb_add(struct dsa_switch *ds, int port, in mt7530_port_fdb_add() argument
1778 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_add()
1791 mt7530_port_fdb_del(struct dsa_switch *ds, int port, in mt7530_port_fdb_del() argument
1795 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_del()
1808 mt7530_port_fdb_dump(struct dsa_switch *ds, int port, in mt7530_port_fdb_dump() argument
1811 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_dump()
1843 mt7530_port_mdb_add(struct dsa_switch *ds, int port, in mt7530_port_mdb_add() argument
1847 struct mt7530_priv *priv = ds->priv; in mt7530_port_mdb_add()
1870 mt7530_port_mdb_del(struct dsa_switch *ds, int port, in mt7530_port_mdb_del() argument
1874 struct mt7530_priv *priv = ds->priv; in mt7530_port_mdb_del()
1898 mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, in mt7530_port_vlan_filtering() argument
1901 struct dsa_port *dp = dsa_to_port(ds, port); in mt7530_port_vlan_filtering()
1910 mt7530_port_set_vlan_aware(ds, port); in mt7530_port_vlan_filtering()
1911 mt7530_port_set_vlan_aware(ds, cpu_dp->index); in mt7530_port_vlan_filtering()
1913 mt7530_port_set_vlan_unaware(ds, port); in mt7530_port_vlan_filtering()
1923 struct dsa_port *dp = dsa_to_port(priv->ds, entry->port); in mt7530_hw_vlan_add()
2002 mt7530_port_vlan_add(struct dsa_switch *ds, int port, in mt7530_port_vlan_add() argument
2009 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_add()
2033 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_add()
2042 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_add()
2056 mt7530_port_vlan_del(struct dsa_switch *ds, int port, in mt7530_port_vlan_del() argument
2060 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_del()
2080 if (dsa_port_is_vlan_filtering(dsa_to_port(ds, port))) in mt7530_port_vlan_del()
2094 static int mt753x_port_mirror_add(struct dsa_switch *ds, int port, in mt753x_port_mirror_add() argument
2098 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_add()
2132 static void mt753x_port_mirror_del(struct dsa_switch *ds, int port, in mt753x_port_mirror_del() argument
2135 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_del()
2156 mtk_get_tag_protocol(struct dsa_switch *ds, int port, in mtk_get_tag_protocol() argument
2272 struct dsa_switch *ds = priv->ds; in mt7530_setup_mdio_irq() local
2276 if (BIT(p) & ds->phys_mii_mask) { in mt7530_setup_mdio_irq()
2280 ds->user_mii_bus->irq[p] = irq; in mt7530_setup_mdio_irq()
2361 if (BIT(p) & priv->ds->phys_mii_mask) { in mt7530_free_mdio_irq()
2374 struct dsa_switch *ds = priv->ds; in mt7530_setup_mdio() local
2392 ds->user_mii_bus = bus; in mt7530_setup_mdio()
2402 bus->phy_mask = ~ds->phys_mii_mask; in mt7530_setup_mdio()
2420 mt7530_setup(struct dsa_switch *ds) in mt7530_setup() argument
2422 struct mt7530_priv *priv = ds->priv; in mt7530_setup()
2436 dsa_switch_for_each_cpu_port(cpu_dp, ds) { in mt7530_setup()
2445 dev_err(ds->dev, "parent OF node of DSA conduit not found"); in mt7530_setup()
2449 ds->assisted_learning_on_cpu_port = true; in mt7530_setup()
2450 ds->untag_vlan_aware_bridge_pvid = true; in mt7530_setup()
2451 ds->mtu_enforcement_ingress = true; in mt7530_setup()
2452 ds->ageing_time_min = 2 * 1000; in mt7530_setup()
2453 ds->ageing_time_max = (AGE_CNT_MAX + 1) * (AGE_UNIT_MAX + 1) * 1000; in mt7530_setup()
2534 mt7530_mib_reset(ds); in mt7530_setup()
2536 for (i = 0; i < priv->ds->num_ports; i++) { in mt7530_setup()
2552 if (dsa_is_cpu_port(ds, i)) { in mt7530_setup()
2553 mt753x_cpu_port_enable(ds, i); in mt7530_setup()
2555 mt7530_port_disable(ds, i); in mt7530_setup()
2575 if (dsa_is_unused_port(ds, 5)) { in mt7530_setup()
2601 id = of_mdio_parse_addr(ds->dev, phy_node); in mt7530_setup()
2615 mt7530_setup_port5(ds, interface); in mt7530_setup()
2636 mt7531_setup_common(struct dsa_switch *ds) in mt7531_setup_common() argument
2638 struct mt7530_priv *priv = ds->priv; in mt7531_setup_common()
2641 ds->assisted_learning_on_cpu_port = true; in mt7531_setup_common()
2642 ds->untag_vlan_aware_bridge_pvid = true; in mt7531_setup_common()
2643 ds->mtu_enforcement_ingress = true; in mt7531_setup_common()
2644 ds->ageing_time_min = 2 * 1000; in mt7531_setup_common()
2645 ds->ageing_time_max = (AGE_CNT_MAX + 1) * (AGE_UNIT_MAX + 1) * 1000; in mt7531_setup_common()
2650 mt7530_mib_reset(ds); in mt7531_setup_common()
2656 for (i = 0; i < priv->ds->num_ports; i++) { in mt7531_setup_common()
2674 if (dsa_is_cpu_port(ds, i)) { in mt7531_setup_common()
2675 mt753x_cpu_port_enable(ds, i); in mt7531_setup_common()
2677 mt7530_port_disable(ds, i); in mt7531_setup_common()
2707 mt7531_setup(struct dsa_switch *ds) in mt7531_setup() argument
2709 struct mt7530_priv *priv = ds->priv; in mt7531_setup()
2751 for (i = 0; i < priv->ds->num_ports; i++) in mt7531_setup()
2795 ret = mt7531_setup_common(ds); in mt7531_setup()
2802 static void mt7530_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7530_mac_port_get_caps() argument
2833 static void mt7531_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7531_mac_port_get_caps() argument
2836 struct mt7530_priv *priv = ds->priv; in mt7531_mac_port_get_caps()
2871 static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port, in mt7988_mac_port_get_caps() argument
2893 static void en7581_mac_port_get_caps(struct dsa_switch *ds, int port, in en7581_mac_port_get_caps() argument
2916 mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7530_mac_config() argument
2919 struct mt7530_priv *priv = ds->priv; in mt7530_mac_config()
2922 mt7530_setup_port5(priv->ds, interface); in mt7530_mac_config()
2924 mt7530_setup_port6(priv->ds, interface); in mt7530_mac_config()
2968 mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7531_mac_config() argument
2971 struct mt7530_priv *priv = ds->priv; in mt7531_mac_config()
2976 dp = dsa_to_port(ds, port); in mt7531_mac_config()
2987 struct mt7530_priv *priv = dp->ds->priv; in mt753x_phylink_mac_select_pcs()
3006 struct dsa_switch *ds = dp->ds; in mt753x_phylink_mac_config() local
3010 priv = ds->priv; in mt753x_phylink_mac_config()
3013 priv->info->mac_port_config(ds, port, mode, state->interface); in mt753x_phylink_mac_config()
3016 if (port == 5 && dsa_is_user_port(ds, 5)) in mt753x_phylink_mac_config()
3025 struct mt7530_priv *priv = dp->ds->priv; in mt753x_phylink_mac_link_down()
3038 struct mt7530_priv *priv = dp->ds->priv; in mt753x_phylink_mac_link_up()
3067 struct mt7530_priv *priv = dp->ds->priv; in mt753x_phylink_mac_disable_tx_lpi()
3077 struct mt7530_priv *priv = dp->ds->priv; in mt753x_phylink_mac_enable_tx_lpi()
3100 static void mt753x_phylink_get_caps(struct dsa_switch *ds, int port, in mt753x_phylink_get_caps() argument
3103 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_get_caps()
3116 priv->info->mac_port_get_caps(ds, port, config); in mt753x_phylink_get_caps()
3186 mt753x_setup(struct dsa_switch *ds) in mt753x_setup() argument
3188 struct mt7530_priv *priv = ds->priv; in mt753x_setup()
3189 int ret = priv->info->sw_setup(ds); in mt753x_setup()
3204 for (i = 0; i < priv->ds->num_ports; i++) { in mt753x_setup()
3226 mt753x_teardown(struct dsa_switch *ds) in mt753x_teardown() argument
3228 struct mt7530_priv *priv = ds->priv; in mt753x_teardown()
3234 static int mt753x_set_mac_eee(struct dsa_switch *ds, int port, in mt753x_set_mac_eee() argument
3244 mt753x_conduit_state_change(struct dsa_switch *ds, in mt753x_conduit_state_change() argument
3249 struct mt7530_priv *priv = ds->priv; in mt753x_conduit_state_change()
3275 static int mt753x_tc_setup_qdisc_tbf(struct dsa_switch *ds, int port, in mt753x_tc_setup_qdisc_tbf() argument
3279 struct mt7530_priv *priv = ds->priv; in mt753x_tc_setup_qdisc_tbf()
3311 static int mt753x_setup_tc(struct dsa_switch *ds, int port, in mt753x_setup_tc() argument
3316 return mt753x_tc_setup_qdisc_tbf(ds, port, type_data); in mt753x_setup_tc()
3322 static int mt7988_setup(struct dsa_switch *ds) in mt7988_setup() argument
3324 struct mt7530_priv *priv = ds->priv; in mt7988_setup()
3345 return mt7531_setup_common(ds); in mt7988_setup()
3470 priv->ds = devm_kzalloc(dev, sizeof(*priv->ds), GFP_KERNEL); in mt7530_probe_common()
3471 if (!priv->ds) in mt7530_probe_common()
3474 priv->ds->dev = dev; in mt7530_probe_common()
3475 priv->ds->num_ports = MT7530_NUM_PORTS; in mt7530_probe_common()
3486 priv->ds->priv = priv; in mt7530_probe_common()
3487 priv->ds->ops = &mt7530_switch_ops; in mt7530_probe_common()
3488 priv->ds->phylink_mac_ops = &mt753x_phylink_mac_ops; in mt7530_probe_common()
3505 dsa_unregister_switch(priv->ds); in mt7530_remove_common()