Home
last modified time | relevance | path

Searched refs:phylink (Results 1 – 25 of 44) sorted by relevance

12

/Linux-v5.15/include/linux/
Dphylink.h436 struct phylink *phylink_create(struct phylink_config *, struct fwnode_handle *,
439 void phylink_set_pcs(struct phylink *, struct phylink_pcs *pcs);
440 void phylink_destroy(struct phylink *);
442 int phylink_connect_phy(struct phylink *, struct phy_device *);
443 int phylink_of_phy_connect(struct phylink *, struct device_node *, u32 flags);
444 int phylink_fwnode_phy_connect(struct phylink *pl,
447 void phylink_disconnect_phy(struct phylink *);
449 void phylink_mac_change(struct phylink *, bool up);
451 void phylink_start(struct phylink *);
452 void phylink_stop(struct phylink *);
[all …]
/Linux-v5.15/Documentation/networking/
Dsfp-phylink.rst4 phylink chapter
10 phylink is a mechanism to support hot-pluggable networking modules
14 phylink supports conventional phylib-based setups, fixed link setups
20 phylink has several modes of operation, which depend on the firmware
69 Rough guide to converting a network driver to sfp/phylink
73 phylib to the sfp/phylink support. Please send patches to improve
98 #include <linux/phylink.h>
104 struct phylink *phylink;
121 - phylink_start(priv->phylink)
123 - phylink_stop(priv->phylink)
[all …]
Dkapi.rst144 .. kernel-doc:: include/linux/phylink.h
147 .. kernel-doc:: drivers/net/phy/phylink.c
/Linux-v5.15/drivers/net/phy/
Dphylink.c42 struct phylink { struct
158 static int phylink_validate(struct phylink *pl, unsigned long *supported, in phylink_validate()
166 static int phylink_parse_fixedlink(struct phylink *pl, in phylink_parse_fixedlink()
267 static int phylink_parse_mode(struct phylink *pl, struct fwnode_handle *fwnode) in phylink_parse_mode()
395 static void phylink_apply_manual_flow(struct phylink *pl, in phylink_apply_manual_flow()
423 static void phylink_mac_config(struct phylink *pl, in phylink_mac_config()
438 static void phylink_mac_pcs_an_restart(struct phylink *pl) in phylink_mac_pcs_an_restart()
450 static void phylink_major_config(struct phylink *pl, bool restart, in phylink_major_config()
499 static int phylink_change_inband_advert(struct phylink *pl) in phylink_change_inband_advert()
536 static void phylink_mac_pcs_get_state(struct phylink *pl, in phylink_mac_pcs_get_state()
[all …]
/Linux-v5.15/drivers/net/ethernet/freescale/dpaa2/
Ddpaa2-mac.c303 struct phylink *phylink; in dpaa2_mac_connect() local
342 phylink = phylink_create(&mac->phylink_config, in dpaa2_mac_connect()
345 if (IS_ERR(phylink)) { in dpaa2_mac_connect()
346 err = PTR_ERR(phylink); in dpaa2_mac_connect()
349 mac->phylink = phylink; in dpaa2_mac_connect()
352 phylink_set_pcs(mac->phylink, &mac->pcs->pcs); in dpaa2_mac_connect()
354 err = phylink_fwnode_phy_connect(mac->phylink, dpmac_node, 0); in dpaa2_mac_connect()
363 phylink_destroy(mac->phylink); in dpaa2_mac_connect()
372 if (!mac->phylink) in dpaa2_mac_disconnect()
375 phylink_disconnect_phy(mac->phylink); in dpaa2_mac_disconnect()
[all …]
Ddpaa2-mac.h23 struct phylink *phylink; member
Ddpaa2-switch-ethtool.c66 return phylink_ethtool_ksettings_get(port_priv->mac->phylink, in dpaa2_switch_get_link_ksettings()
103 return phylink_ethtool_ksettings_set(port_priv->mac->phylink, in dpaa2_switch_set_link_ksettings()
Ddpaa2-ethtool.c89 return phylink_ethtool_nway_reset(priv->mac->phylink); in dpaa2_eth_nway_reset()
101 return phylink_ethtool_ksettings_get(priv->mac->phylink, in dpaa2_eth_get_link_ksettings()
121 return phylink_ethtool_ksettings_set(priv->mac->phylink, link_settings); in dpaa2_eth_set_link_ksettings()
131 phylink_ethtool_get_pauseparam(priv->mac->phylink, pause); in dpaa2_eth_get_pauseparam()
154 return phylink_ethtool_set_pauseparam(priv->mac->phylink, in dpaa2_eth_set_pauseparam()
/Linux-v5.15/drivers/net/ethernet/microchip/sparx5/
Dsparx5_netdev.c83 err = phylink_of_phy_connect(port->phylink, port->of_node, 0); in sparx5_port_open()
89 phylink_start(port->phylink); in sparx5_port_open()
111 phylink_stop(port->phylink); in sparx5_port_stop()
112 phylink_disconnect_phy(port->phylink); in sparx5_port_stop()
251 if (port && port->phylink) { in sparx5_destroy_netdevs()
255 phylink_disconnect_phy(port->phylink); in sparx5_destroy_netdevs()
257 phylink_destroy(port->phylink); in sparx5_destroy_netdevs()
258 port->phylink = NULL; in sparx5_destroy_netdevs()
Dsparx5_main.c259 struct phylink *phylink; in sparx5_create_port() local
297 phylink = phylink_create(&spx5_port->phylink_config, in sparx5_create_port()
301 if (IS_ERR(phylink)) in sparx5_create_port()
302 return PTR_ERR(phylink); in sparx5_create_port()
304 spx5_port->phylink = phylink; in sparx5_create_port()
305 phylink_set_pcs(phylink, &spx5_port->phylink_pcs); in sparx5_create_port()
/Linux-v5.15/drivers/net/ethernet/
Djme.c387 u32 phylink, bmsr; in jme_linkstat_from_phy() local
389 phylink = jme_mdio_read(jme->dev, jme->mii_if.phy_id, 17); in jme_linkstat_from_phy()
392 phylink |= PHY_LINK_AUTONEG_COMPLETE; in jme_linkstat_from_phy()
394 return phylink; in jme_linkstat_from_phy()
413 u32 phylink, cnt = JME_SPDRSV_TIMEOUT, bmcr; in jme_check_link() local
420 phylink = jme_linkstat_from_phy(jme); in jme_check_link()
422 phylink = jread32(jme, JME_PHY_LINK); in jme_check_link()
424 if (phylink & PHY_LINK_UP) { in jme_check_link()
425 if (!(phylink & PHY_LINK_AUTONEG_COMPLETE)) { in jme_check_link()
430 phylink = PHY_LINK_UP; in jme_check_link()
[all …]
/Linux-v5.15/Documentation/networking/device_drivers/ethernet/freescale/dpaa2/
Dmac-phy-support.rst22 the help of phylink.
26 directly by the dpaa2-eth driver or by phylink.
34 | net_device | | phylink |--| +-----+ +-----+ +-----+ +-----+ |
66 phylink instance, the dpaa2-eth driver will not bind to the connected dpmac
71 phylink) and its attached net_device driver (dpaa2-eth, dpaa2-ethsw),
184 A phylink integration is necessary only when the partner DPMAC is not of TYPE_FIXED.
/Linux-v5.15/drivers/net/ethernet/mscc/
Docelot.h44 struct phylink *phylink; member
Docelot_net.c438 phylink_start(priv->phylink); in ocelot_port_open()
447 phylink_stop(priv->phylink); in ocelot_port_stop()
1607 struct phylink *phylink; in ocelot_port_phylink_create() local
1659 phylink = phylink_create(&priv->phylink_config, in ocelot_port_phylink_create()
1662 if (IS_ERR(phylink)) { in ocelot_port_phylink_create()
1663 err = PTR_ERR(phylink); in ocelot_port_phylink_create()
1664 dev_err(dev, "Could not create phylink (%pe)\n", phylink); in ocelot_port_phylink_create()
1668 priv->phylink = phylink; in ocelot_port_phylink_create()
1670 err = phylink_of_phy_connect(phylink, portnp, 0); in ocelot_port_phylink_create()
1673 phylink_destroy(phylink); in ocelot_port_phylink_create()
[all …]
/Linux-v5.15/drivers/net/ethernet/atheros/
Dag71xx.c370 struct phylink *phylink; member
464 return phylink_ethtool_ksettings_get(ag->phylink, kset); in ag71xx_get_link_ksettings()
472 return phylink_ethtool_ksettings_set(ag->phylink, kset); in ag71xx_set_link_ksettings()
479 return phylink_ethtool_nway_reset(ag->phylink); in ag71xx_ethtool_nway_reset()
487 phylink_ethtool_get_pauseparam(ag->phylink, pause); in ag71xx_ethtool_get_pauseparam()
495 return phylink_ethtool_set_pauseparam(ag->phylink, pause); in ag71xx_ethtool_set_pauseparam()
1178 struct phylink *phylink; in ag71xx_phylink_setup() local
1183 phylink = phylink_create(&ag->phylink_config, ag->pdev->dev.fwnode, in ag71xx_phylink_setup()
1185 if (IS_ERR(phylink)) in ag71xx_phylink_setup()
1186 return PTR_ERR(phylink); in ag71xx_phylink_setup()
[all …]
/Linux-v5.15/drivers/net/ethernet/xilinx/
Dxilinx_axienet_main.c1060 ret = phylink_of_phy_connect(lp->phylink, lp->dev->of_node, 0); in axienet_open()
1066 phylink_start(lp->phylink); in axienet_open()
1096 phylink_stop(lp->phylink); in axienet_open()
1097 phylink_disconnect_phy(lp->phylink); in axienet_open()
1121 phylink_stop(lp->phylink); in axienet_stop()
1122 phylink_disconnect_phy(lp->phylink); in axienet_stop()
1220 return phylink_mii_ioctl(lp->phylink, rq, cmd); in axienet_ioctl()
1375 phylink_ethtool_get_pauseparam(lp->phylink, epauseparm); in axienet_ethtools_get_pauseparam()
1396 return phylink_ethtool_set_pauseparam(lp->phylink, epauseparm); in axienet_ethtools_set_pauseparam()
1470 return phylink_ethtool_ksettings_get(lp->phylink, cmd); in axienet_ethtools_get_link_ksettings()
[all …]
Dxilinx_axienet.h433 struct phylink *phylink; member
/Linux-v5.15/drivers/net/ethernet/stmicro/stmmac/
Dstmmac_ethtool.c378 return phylink_ethtool_ksettings_get(priv->phylink, cmd); in stmmac_ethtool_get_link_ksettings()
409 return phylink_ethtool_ksettings_set(priv->phylink, cmd); in stmmac_ethtool_set_link_ksettings()
462 return phylink_ethtool_nway_reset(priv->phylink); in stmmac_nway_reset()
504 phylink_ethtool_get_pauseparam(priv->phylink, pause); in stmmac_get_pauseparam()
521 return phylink_ethtool_set_pauseparam(priv->phylink, pause); in stmmac_set_pauseparam()
585 int val = phylink_get_eee_err(priv->phylink); in stmmac_get_ethtool_stats()
706 return phylink_ethtool_get_wol(priv->phylink, wol); in stmmac_get_wol()
727 int ret = phylink_ethtool_set_wol(priv->phylink, wol); in stmmac_set_wol()
772 return phylink_ethtool_get_eee(priv->phylink, edata); in stmmac_ethtool_op_get_eee()
799 ret = phylink_ethtool_set_eee(priv->phylink, edata); in stmmac_ethtool_op_set_eee()
Dstmmac.h219 struct phylink *phylink; member
/Linux-v5.15/drivers/net/ethernet/freescale/enetc/
Denetc_pf.c983 phylink_set_pcs(priv->phylink, &pf->pcs->pcs); in enetc_pl_mac_config()
1109 struct phylink *phylink; in enetc_phylink_create() local
1115 phylink = phylink_create(&pf->phylink_config, of_fwnode_handle(node), in enetc_phylink_create()
1117 if (IS_ERR(phylink)) { in enetc_phylink_create()
1118 err = PTR_ERR(phylink); in enetc_phylink_create()
1122 priv->phylink = phylink; in enetc_phylink_create()
1129 if (priv->phylink) in enetc_phylink_destroy()
1130 phylink_destroy(priv->phylink); in enetc_phylink_destroy()
Denetc_ethtool.c720 phylink_ethtool_get_pauseparam(priv->phylink, pause); in enetc_get_pauseparam()
728 return phylink_ethtool_set_pauseparam(priv->phylink, pause); in enetc_set_pauseparam()
736 if (!priv->phylink) in enetc_get_link_ksettings()
739 return phylink_ethtool_ksettings_get(priv->phylink, cmd); in enetc_get_link_ksettings()
747 if (!priv->phylink) in enetc_set_link_ksettings()
750 return phylink_ethtool_ksettings_set(priv->phylink, cmd); in enetc_set_link_ksettings()
/Linux-v5.15/drivers/net/ethernet/marvell/
Dmvneta.c500 struct phylink *phylink; member
3129 phylink_mac_change(pp->phylink, !!(gmac_stat & MVNETA_GMAC_LINK_UP)); in mvneta_link_change()
3646 phylink_start(pp->phylink); in mvneta_start_dev()
3649 phylink_speed_up(pp->phylink); in mvneta_start_dev()
3663 phylink_speed_down(pp->phylink, false); in mvneta_stop_dev()
3665 phylink_stop(pp->phylink); in mvneta_stop_dev()
4134 int err = phylink_of_phy_connect(pp->phylink, pp->dn, 0); in mvneta_mdio_probe()
4139 phylink_ethtool_get_wol(pp->phylink, &wol); in mvneta_mdio_probe()
4151 phylink_disconnect_phy(pp->phylink); in mvneta_mdio_remove()
4428 return phylink_mii_ioctl(pp->phylink, ifr, cmd); in mvneta_ioctl()
[all …]
/Linux-v5.15/drivers/net/pcs/
DKconfig18 This module provides helpers to phylink for managing the Lynx PCS
/Linux-v5.15/drivers/net/ethernet/mediatek/
Dmtk_eth_soc.c2290 err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); in mtk_open()
2320 phylink_start(mac->phylink); in mtk_open()
2353 phylink_stop(mac->phylink); in mtk_stop()
2357 phylink_disconnect_phy(mac->phylink); in mtk_stop()
2607 phylink_disconnect_phy(mac->phylink); in mtk_uninit()
2649 return phylink_mii_ioctl(mac->phylink, ifr, cmd); in mtk_do_ioctl()
2752 return phylink_ethtool_ksettings_get(mac->phylink, cmd); in mtk_get_link_ksettings()
2763 return phylink_ethtool_ksettings_set(mac->phylink, cmd); in mtk_set_link_ksettings()
2797 if (!mac->phylink) in mtk_nway_reset()
2800 return phylink_ethtool_nway_reset(mac->phylink); in mtk_nway_reset()
[all …]
/Linux-v5.15/drivers/net/ethernet/marvell/mvpp2/
Dmvpp2_main.c1714 if (port->phylink || in mvpp22_gop_setup_irq()
3400 if (port->phylink) { in mvpp2_isr_handle_link()
3401 phylink_mac_change(port->phylink, link); in mvpp2_isr_handle_link()
4584 if (port->phylink) { in mvpp2_start_dev()
4585 phylink_start(port->phylink); in mvpp2_start_dev()
4608 if (port->phylink) in mvpp2_stop_dev()
4609 phylink_stop(port->phylink); in mvpp2_stop_dev()
4788 if (port->phylink) { in mvpp2_open()
4789 err = phylink_fwnode_phy_connect(port->phylink, port->fwnode, 0); in mvpp2_open()
4859 if (port->phylink) in mvpp2_stop()
[all …]

12