• Home
  • Raw
  • Download

Lines Matching full:ds

384 mt7530_pad_clk_setup(struct dsa_switch *ds, phy_interface_t interface)  in mt7530_pad_clk_setup()  argument
386 struct mt7530_priv *priv = ds->priv; in mt7530_pad_clk_setup()
503 mt7531_pad_setup(struct dsa_switch *ds, phy_interface_t interface) in mt7531_pad_setup() argument
599 mt7530_mib_reset(struct dsa_switch *ds) in mt7530_mib_reset() argument
601 struct mt7530_priv *priv = ds->priv; in mt7530_mib_reset()
607 static int mt7530_phy_read(struct dsa_switch *ds, int port, int regnum) in mt7530_phy_read() argument
609 struct mt7530_priv *priv = ds->priv; in mt7530_phy_read()
614 static int mt7530_phy_write(struct dsa_switch *ds, int port, int regnum, in mt7530_phy_write() argument
617 struct mt7530_priv *priv = ds->priv; in mt7530_phy_write()
796 mt7531_ind_phy_read(struct dsa_switch *ds, int port, int regnum) in mt7531_ind_phy_read() argument
798 struct mt7530_priv *priv = ds->priv; in mt7531_ind_phy_read()
814 mt7531_ind_phy_write(struct dsa_switch *ds, int port, int regnum, in mt7531_ind_phy_write() argument
817 struct mt7530_priv *priv = ds->priv; in mt7531_ind_phy_write()
834 mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, in mt7530_get_strings() argument
848 mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, in mt7530_get_ethtool_stats() argument
851 struct mt7530_priv *priv = ds->priv; in mt7530_get_ethtool_stats()
869 mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) in mt7530_get_sset_count() argument
877 static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface) in mt7530_setup_port5() argument
879 struct mt7530_priv *priv = ds->priv; in mt7530_setup_port5()
910 dev_err(ds->dev, "Unsupported p5_intf_sel %d\n", in mt7530_setup_port5()
923 if (!dsa_is_dsa_port(priv->ds, 5) && in mt7530_setup_port5()
939 dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, intf_sel=%s, phy-mode=%s\n", in mt7530_setup_port5()
949 mt753x_cpu_port_enable(struct dsa_switch *ds, int port) in mt753x_cpu_port_enable() argument
951 struct mt7530_priv *priv = ds->priv; in mt753x_cpu_port_enable()
956 ret = priv->info->cpu_port_config(ds, port); in mt753x_cpu_port_enable()
976 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt753x_cpu_port_enable()
982 mt7530_port_enable(struct dsa_switch *ds, int port, in mt7530_port_enable() argument
985 struct mt7530_priv *priv = ds->priv; in mt7530_port_enable()
1005 mt7530_port_disable(struct dsa_switch *ds, int port) in mt7530_port_disable() argument
1007 struct mt7530_priv *priv = ds->priv; in mt7530_port_disable()
1023 mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) in mt7530_stp_state_set() argument
1025 struct mt7530_priv *priv = ds->priv; in mt7530_stp_state_set()
1051 mt7530_port_bridge_join(struct dsa_switch *ds, int port, in mt7530_port_bridge_join() argument
1054 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_join()
1065 if (dsa_is_user_port(ds, i) && i != port) { in mt7530_port_bridge_join()
1066 if (dsa_to_port(ds, i)->bridge_dev != bridge) in mt7530_port_bridge_join()
1089 mt7530_port_set_vlan_unaware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_unaware() argument
1091 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_unaware()
1106 if (dsa_is_user_port(ds, i) && in mt7530_port_set_vlan_unaware()
1107 dsa_port_is_vlan_filtering(dsa_to_port(ds, i))) { in mt7530_port_set_vlan_unaware()
1118 PCR_MATRIX(dsa_user_ports(priv->ds))); in mt7530_port_set_vlan_unaware()
1125 mt7530_port_set_vlan_aware(struct dsa_switch *ds, int port) in mt7530_port_set_vlan_aware() argument
1127 struct mt7530_priv *priv = ds->priv; in mt7530_port_set_vlan_aware()
1133 if (dsa_is_cpu_port(ds, port)) in mt7530_port_set_vlan_aware()
1149 mt7530_port_bridge_leave(struct dsa_switch *ds, int port, in mt7530_port_bridge_leave() argument
1152 struct mt7530_priv *priv = ds->priv; in mt7530_port_bridge_leave()
1162 if (dsa_is_user_port(ds, i) && i != port) { in mt7530_port_bridge_leave()
1163 if (dsa_to_port(ds, i)->bridge_dev != bridge) in mt7530_port_bridge_leave()
1184 mt7530_port_fdb_add(struct dsa_switch *ds, int port, in mt7530_port_fdb_add() argument
1187 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_add()
1200 mt7530_port_fdb_del(struct dsa_switch *ds, int port, in mt7530_port_fdb_del() argument
1203 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_del()
1216 mt7530_port_fdb_dump(struct dsa_switch *ds, int port, in mt7530_port_fdb_dump() argument
1219 struct mt7530_priv *priv = ds->priv; in mt7530_port_fdb_dump()
1278 mt7530_port_vlan_filtering(struct dsa_switch *ds, int port, in mt7530_port_vlan_filtering() argument
1291 mt7530_port_set_vlan_aware(ds, port); in mt7530_port_vlan_filtering()
1292 mt7530_port_set_vlan_aware(ds, MT7530_CPU_PORT); in mt7530_port_vlan_filtering()
1294 mt7530_port_set_vlan_unaware(ds, port); in mt7530_port_vlan_filtering()
1301 mt7530_port_vlan_prepare(struct dsa_switch *ds, int port, in mt7530_port_vlan_prepare() argument
1397 mt7530_port_vlan_add(struct dsa_switch *ds, int port, in mt7530_port_vlan_add() argument
1403 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_add()
1424 mt7530_port_vlan_del(struct dsa_switch *ds, int port, in mt7530_port_vlan_del() argument
1428 struct mt7530_priv *priv = ds->priv; in mt7530_port_vlan_del()
1466 static int mt753x_port_mirror_add(struct dsa_switch *ds, int port, in mt753x_port_mirror_add() argument
1470 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_add()
1504 static void mt753x_port_mirror_del(struct dsa_switch *ds, int port, in mt753x_port_mirror_del() argument
1507 struct mt7530_priv *priv = ds->priv; in mt753x_port_mirror_del()
1528 mtk_get_tag_protocol(struct dsa_switch *ds, int port, in mtk_get_tag_protocol() argument
1531 struct mt7530_priv *priv = ds->priv; in mtk_get_tag_protocol()
1543 mt7530_setup(struct dsa_switch *ds) in mt7530_setup() argument
1545 struct mt7530_priv *priv = ds->priv; in mt7530_setup()
1558 dn = dsa_to_port(ds, MT7530_CPU_PORT)->master->dev.of_node->parent; in mt7530_setup()
1559 ds->configure_vlan_while_not_filtering = true; in mt7530_setup()
1622 mt7530_mib_reset(ds); in mt7530_setup()
1629 if (dsa_is_cpu_port(ds, i)) { in mt7530_setup()
1630 ret = mt753x_cpu_port_enable(ds, i); in mt7530_setup()
1634 mt7530_port_disable(ds, i); in mt7530_setup()
1645 if (!dsa_is_unused_port(ds, 5)) { in mt7530_setup()
1647 ret = of_get_phy_mode(dsa_to_port(ds, 5)->dn, &interface); in mt7530_setup()
1672 id = of_mdio_parse_addr(ds->dev, phy_node); in mt7530_setup()
1684 mt7530_setup_port5(ds, interface); in mt7530_setup()
1695 mt7531_setup(struct dsa_switch *ds) in mt7531_setup() argument
1697 struct mt7530_priv *priv = ds->priv; in mt7531_setup()
1742 /* Let ds->slave_mii_bus be able to access external phy. */ in mt7531_setup()
1750 dev_dbg(ds->dev, "P5 support %s interface\n", in mt7531_setup()
1779 mt7530_mib_reset(ds); in mt7531_setup()
1788 if (dsa_is_cpu_port(ds, i)) { in mt7531_setup()
1789 ret = mt753x_cpu_port_enable(ds, i); in mt7531_setup()
1793 mt7530_port_disable(ds, i); in mt7531_setup()
1800 ds->configure_vlan_while_not_filtering = true; in mt7531_setup()
1811 mt7530_phy_mode_supported(struct dsa_switch *ds, int port, in mt7530_phy_mode_supported() argument
1814 struct mt7530_priv *priv = ds->priv; in mt7530_phy_mode_supported()
1847 mt7531_phy_mode_supported(struct dsa_switch *ds, int port, in mt7531_phy_mode_supported() argument
1850 struct mt7530_priv *priv = ds->priv; in mt7531_phy_mode_supported()
1876 mt753x_phy_mode_supported(struct dsa_switch *ds, int port, in mt753x_phy_mode_supported() argument
1879 struct mt7530_priv *priv = ds->priv; in mt753x_phy_mode_supported()
1881 return priv->info->phy_mode_supported(ds, port, state); in mt753x_phy_mode_supported()
1885 mt753x_pad_setup(struct dsa_switch *ds, const struct phylink_link_state *state) in mt753x_pad_setup() argument
1887 struct mt7530_priv *priv = ds->priv; in mt753x_pad_setup()
1889 return priv->info->pad_setup(ds, state->interface); in mt753x_pad_setup()
1893 mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7530_mac_config() argument
1896 struct mt7530_priv *priv = ds->priv; in mt7530_mac_config()
1902 mt7530_setup_port5(priv->ds, interface); in mt7530_mac_config()
1967 mt7531_sgmii_link_up_force(struct dsa_switch *ds, int port, in mt7531_sgmii_link_up_force() argument
1971 struct mt7530_priv *priv = ds->priv; in mt7531_sgmii_link_up_force()
2072 static void mt7531_sgmii_restart_an(struct dsa_switch *ds, int port) in mt7531_sgmii_restart_an() argument
2074 struct mt7530_priv *priv = ds->priv; in mt7531_sgmii_restart_an()
2086 mt7531_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt7531_mac_config() argument
2089 struct mt7530_priv *priv = ds->priv; in mt7531_mac_config()
2103 dp = dsa_to_port(ds, port); in mt7531_mac_config()
2123 mt753x_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt753x_mac_config() argument
2126 struct mt7530_priv *priv = ds->priv; in mt753x_mac_config()
2128 return priv->info->mac_port_config(ds, port, mode, state->interface); in mt753x_mac_config()
2132 mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, in mt753x_phylink_mac_config() argument
2135 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_config()
2138 if (!mt753x_phy_mode_supported(ds, port, state)) in mt753x_phylink_mac_config()
2150 if (mt753x_mac_config(ds, port, mode, state) < 0) in mt753x_phylink_mac_config()
2160 mt753x_pad_setup(ds, state); in mt753x_phylink_mac_config()
2162 if (mt753x_mac_config(ds, port, mode, state) < 0) in mt753x_phylink_mac_config()
2169 dev_err(ds->dev, "%s: unsupported %s port: %i\n", in mt753x_phylink_mac_config()
2176 dev_err(ds->dev, "%s: in-band negotiation unsupported\n", in mt753x_phylink_mac_config()
2188 if (port == 5 && dsa_is_user_port(ds, 5)) in mt753x_phylink_mac_config()
2196 mt753x_phylink_mac_an_restart(struct dsa_switch *ds, int port) in mt753x_phylink_mac_an_restart() argument
2198 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_an_restart()
2203 priv->info->mac_pcs_an_restart(ds, port); in mt753x_phylink_mac_an_restart()
2206 static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_down() argument
2210 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_down()
2215 static void mt753x_mac_pcs_link_up(struct dsa_switch *ds, int port, in mt753x_mac_pcs_link_up() argument
2219 struct mt7530_priv *priv = ds->priv; in mt753x_mac_pcs_link_up()
2224 priv->info->mac_pcs_link_up(ds, port, mode, interface, speed, duplex); in mt753x_mac_pcs_link_up()
2227 static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_up() argument
2234 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_up()
2237 mt753x_mac_pcs_link_up(ds, port, mode, interface, speed, duplex); in mt753x_phylink_mac_link_up()
2270 mt7531_cpu_port_config(struct dsa_switch *ds, int port) in mt7531_cpu_port_config() argument
2272 struct mt7530_priv *priv = ds->priv; in mt7531_cpu_port_config()
2300 ret = mt7531_mac_config(ds, port, MLO_AN_FIXED, interface); in mt7531_cpu_port_config()
2305 mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL, in mt7531_cpu_port_config()
2312 mt7530_mac_port_validate(struct dsa_switch *ds, int port, in mt7530_mac_port_validate() argument
2317 static void mt7531_mac_port_validate(struct dsa_switch *ds, int port, in mt7531_mac_port_validate() argument
2320 struct mt7530_priv *priv = ds->priv; in mt7531_mac_port_validate()
2326 mt753x_phylink_validate(struct dsa_switch *ds, int port, in mt753x_phylink_validate() argument
2331 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_validate()
2334 !mt753x_phy_mode_supported(ds, port, state)) { in mt753x_phylink_validate()
2356 priv->info->mac_port_validate(ds, port, mask); in mt753x_phylink_validate()
2371 mt7530_phylink_mac_link_state(struct dsa_switch *ds, int port, in mt7530_phylink_mac_link_state() argument
2374 struct mt7530_priv *priv = ds->priv; in mt7530_phylink_mac_link_state()
2450 mt7531_phylink_mac_link_state(struct dsa_switch *ds, int port, in mt7531_phylink_mac_link_state() argument
2453 struct mt7530_priv *priv = ds->priv; in mt7531_phylink_mac_link_state()
2462 mt753x_phylink_mac_link_state(struct dsa_switch *ds, int port, in mt753x_phylink_mac_link_state() argument
2465 struct mt7530_priv *priv = ds->priv; in mt753x_phylink_mac_link_state()
2467 return priv->info->mac_port_get_state(ds, port, state); in mt753x_phylink_mac_link_state()
2471 mt753x_setup(struct dsa_switch *ds) in mt753x_setup() argument
2473 struct mt7530_priv *priv = ds->priv; in mt753x_setup()
2475 return priv->info->sw_setup(ds); in mt753x_setup()
2479 mt753x_phy_read(struct dsa_switch *ds, int port, int regnum) in mt753x_phy_read() argument
2481 struct mt7530_priv *priv = ds->priv; in mt753x_phy_read()
2483 return priv->info->phy_read(ds, port, regnum); in mt753x_phy_read()
2487 mt753x_phy_write(struct dsa_switch *ds, int port, int regnum, u16 val) in mt753x_phy_write() argument
2489 struct mt7530_priv *priv = ds->priv; in mt753x_phy_write()
2491 return priv->info->phy_write(ds, port, regnum, val); in mt753x_phy_write()
2583 priv->ds = devm_kzalloc(&mdiodev->dev, sizeof(*priv->ds), GFP_KERNEL); in mt7530_probe()
2584 if (!priv->ds) in mt7530_probe()
2587 priv->ds->dev = &mdiodev->dev; in mt7530_probe()
2588 priv->ds->num_ports = MT7530_NUM_PORTS; in mt7530_probe()
2649 priv->ds->priv = priv; in mt7530_probe()
2650 priv->ds->ops = &mt7530_switch_ops; in mt7530_probe()
2654 return dsa_register_switch(priv->ds); in mt7530_probe()
2673 dsa_unregister_switch(priv->ds); in mt7530_remove()