ytphy_check_...restart_aneg(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ ytphy_check_and_restart_aneg β€” the Kernel API Manual, but make it make sense ✨

okay bestie, so this one is a function from the Kernel API Manual and it's lowkey iconic: ytphy_check_and_restart_aneg. It's literally just "check the auto-negotiation situation and restart it if you need to." Genuinely that's the whole vibe. πŸ’…


🌸 NAME 🌸

ytphy_check_and_restart_aneg β€” enable and restart auto-negotiation. That's it, that's the job, she ate. ✨


πŸ’– SYNOPSIS πŸ’–

int ytphy_check_and_restart_aneg (struct phy_device *phydev , bool
restart );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • phydev β€” the target phy_device struct, i.e. the phy device we're doing all this for. Your main character, fr.
  • restart β€” a bool, and it's giving "do you actually want an aneg restart or not?" So true-ish = yes please restart, and otherwise = nah we're chilling.

πŸŽ€ NOTE πŸŽ€

🚨 bestie read this part, it's important 🚨

The caller must have taken the MDIO bus lock. Like, must must. Don't be out here calling this without holding that lock, okay? πŸ™ˆ

And it returns 0 or a negative errno code. So zero = slay, negative = something went sideways. 😭


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/net/phy/motorcomm.c and honestly the whole friend group: ytphy_read_ext(9), ytphy_read_ext_with_lock(9), ytphy_write_ext(9), ytphy_write_ext_with_lock(9), ytphy_modify_ext(9), ytphy_modify_ext_with_lock(9), ytphy_get_wol(9), ytphy_set_wol(9), yt8521_read_page(9), yt8521_write_page(9), struct ytphy_cfg_reg_map(9), struct ytphy_ldo_vol_map(9), yt8521_probe(9), ytphy_utp_read_lpa(9), yt8521_adjust_status(9), yt8521_read_status_paged(9), yt8521_read_status(9), yt8521_modify_bmcr_paged(9), yt8521_modify_utp_fiber_bmcr(9), yt8521_soft_reset(9), yt8521_suspend(9), yt8521_resume(9), yt8521_config_init(9), yt8531_link_change_notify(9), yt8521_prepare_fiber_features(9), yt8521_fiber_setup_forced(9), yt8521_fiber_config_aneg(9), ytphy_setup_master_slave(9), ytphy_utp_config_advert(9), ytphy_utp_config_aneg(9), yt8521_config_aneg_paged(9), yt8521_config_aneg(9), yt8521_aneg_done_paged(9), yt8521_aneg_done(9), ytphy_utp_read_abilities(9), yt8521_get_features_paged(9), yt8521_get_features(9), yt8821_get_features(9), yt8821_get_rate_matching(9), yt8821_aneg_done(9), yt8821_serdes_init(9), yt8821_utp_init(9), yt8821_auto_sleep_config(9), yt8821_soft_reset(9), yt8821_config_init(9), yt8821_adjust_status(9), yt8821_update_interface(9), yt8821_read_status(9), yt8821_modify_utp_fiber_bmcr(9), yt8821_suspend(9), yt8821_resume(9).

Like. The whole extended universe, no cap. 🌈


anyway that's the page!! it lives in ./drivers/net/phy, it's dated October 2026, and it's brought to you under the Kernel API Manual banner. mwah, go hold that MDIO bus lock bestie πŸ’œπŸ«Ά

πŸ“¦ where this page comes from