phylink_connect_phy(9)
π phylink_connect_phy β Kernel API Manual β¨
okay so bestie, welcome to the phylink_connect_phy(9) page π
this one lives in the Kernel API Manual and it's literally about introducing a PHY to its phylink bestie. matchmaker energy fr fr π
πΈ NAME πΈ
phylink_connect_phy β connect a PHY to the phylink instance π«Ά
β¨ SYNOPSIS β¨
int phylink_connect_phy (struct phylink *pl , struct phy_device *phy );
that's it. that's the whole signature. short and iconic π
π ARGUMENTS π
plβ a pointer to astruct phylinkreturned fromphylink_createπ like, this is the phylink you already made, you're not creating a new one here, you're just handing it a friend.phyβ a pointer to astruct phy_device. π¦ yep. that's the whole description for this one. it's a pointer to astruct phy_device. slay.
π₯ DESCRIPTION π₯
So what actually happens π β this function connects phy to the phylink instance specified by pl by calling phy_attach_direct. that's the matchmaking moment π
Then it configures the phy according to the MAC driver's capabilities, starts the PHYLIB state machine, and enables any interrupts that the PHY supports. it's giving full onboarding process β¨
also important bestie: this updates the phylink's ethtool supported and advertising link mode masks π so the vibes (link modes) get refreshed too, no cap.
And the return value? 0 on success, or a negative errno π so if it's negative, something went wrong, check your errno.
π SEE ALSO π
Kernel file ./drivers/net/phy/phylink.c, struct phylink(9), and honestly the entire phylink friend group π
:
phylink_set_port_modes(9)phylink_interface_max_speed(9)phylink_caps_to_link_caps(9)phylink_caps_to_linkmodes(9)phylink_limit_mac_speed(9)phylink_cap_from_speed_duplex(9)phylink_get_capabilities(9)phylink_validate_mask_caps(9)phylink_pcs_neg_mode(9)phylink_set_fixed_link(9)phylink_create(9)phylink_destroy(9)phylink_expects_phy(9)phylink_of_phy_connect(9)phylink_fwnode_phy_connect(9)phylink_disconnect_phy(9)phylink_mac_change(9)phylink_pcs_change(9)phylink_start(9)phylink_stop(9)phylink_rx_clk_stop_block(9)phylink_rx_clk_stop_unblock(9)phylink_suspend(9)phylink_prepare_resume(9)phylink_resume(9)phylink_ethtool_get_wol(9)phylink_ethtool_set_wol(9)phylink_ethtool_ksettings_get(9)phylink_ethtool_ksettings_set(9)phylink_ethtool_nway_reset(9)phylink_ethtool_get_pauseparam(9)phylink_ethtool_set_pauseparam(9)phylink_get_eee_err(9)phylink_ethtool_get_eee(9)phylink_ethtool_set_eee(9)phylink_mii_ioctl(9)phylink_speed_down(9)phylink_speed_up(9)phylink_decode_usxgmii_word(9)phylink_decode_usgmii_word(9)phylink_mii_c22_pcs_decode_state(9)phylink_mii_c22_pcs_get_state(9)phylink_mii_c22_pcs_encode_advertisement(9)phylink_mii_c22_pcs_config(9)phylink_mii_c22_pcs_an_restart(9)phylink_replay_link_begin(9)phylink_replay_link_end(9)
that's the whole page bestie, go connect some PHYs π§π
β from ./drivers/net/phy, dated October 2026 π mwah, ily, bye π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms