phylink_pcs_change(9)
πΈ phylink_pcs_change β the phylink_pcs_change(9) glow-up πΈ
okay bestie, welcome to the Kernel API Manual entry for phylink_pcs_change(9) π this one's short and sweet and lowkey kinda important if you're writing a PCS driver, so likeβ¦ pay attention bestie π«Ά
β¨ NAME β¨
phylink_pcs_change β like, tell phylink that your PCS link state changed, no cap π£
β¨ SYNOPSIS β¨
void phylink_pcs_change (struct phylink_pcs *pcs , bool up );
β¨ ARGUMENTS β¨
pcsβ pointer tostruct phylink_pcs, aka the actual PCS you're yelling about πupβ abooltelling everyone whether the link is currently up. like, is it giving connected or is it giving nothing π
β¨ DESCRIPTION β¨
bestie. listen. the PCS driver should call this whenever the state of its link changes β think link failure, new negotiation results, etc. etc. π¦ whenever the vibe of the link shifts, you ring this function up.
β οΈ huge note, do not skip this: it should not determine "up" by reading the BMSR. like, that's not the move, okay? π
and if you're in doubt about the link state at interrupt time? here's the cheat code β¨ β pass true if pcs_get_state returns the latched link-down state, otherwise pass false. that's it, that's the whole rule π
π SEE ALSO π
okay this list is long long, but every single one of these is invited to the party π the kernel file lives at ./drivers/net/phy/phylink.c and struct phylink(9) is the main character:
struct phylink(9)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_connect_phy(9)phylink_of_phy_connect(9)phylink_fwnode_phy_connect(9)phylink_disconnect_phy(9)phylink_mac_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)
and that's the whole page, bestie π she lives in ./drivers/net/phy, dated October 2026, and she's filed under phylink_pcs_change(9) β go forth and notify phylink correctly, ily πβ¨π¦
π¦ 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