bcm5481x_read_abilities(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… bcm5481x_read_abilities

okay bestie, welcome to the Kernel API Manual ✨ β€” yes you read that right, we're doing kernel PHY stuff today and honestly? it's giving main character energy πŸŽ€


🌸 NAME

bcm5481x_read_abilities β€” reads the PHY's abilities from the LRESR registers or the Clause 22 (BMSR) registers, and which one it picks depends entirely on whether the PHY is vibing in BroadR-Reach mode or IEEE mode πŸ¦‹


✨ SYNOPSIS

int bcm5481x_read_abilities (struct phy_device *phydev );

that's it. one arg. one int. slay πŸ’…


🫢 ARGUMENTS

  • phydev β€” the target phy_device struct, aka the little guy we're reading abilities from πŸ’–

πŸ”₯ DESCRIPTION

So what this bad boy does: it reads the PHY's abilities and populates phydev->supported accordingly ✨ literally just fills in the "what can this PHY do" list.

Which register it reads the abilities from? that gets determined by the brr mode setting of the PHY, as read from the device tree 🌸 iykyk.

⚠️ important heads up bestie: the LRE set of abilities and the IEEE set of abilities are disjunct β€” no cap. It's not just that the link modes differ either. The auto-negotiation and the master-slave setup are controlled differently too 😭 so like, don't assume one works like the other, fr fr.

⭐ RETURN

  • 0 on success πŸŽ‰
  • < 0 on failure πŸ’€

🌈 SEE ALSO


and that's the whole page, bestie πŸ‘‘ β€” brought to you by the lovely folks over in ./drivers/net/phy, dated October 2026, manual name Kernel API Manual. go forth and read those abilities πŸ§šπŸ’œ

πŸ“¦ where this page comes from