bcm5481x_read_abilities(9)
π 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 targetphy_devicestruct, 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
0on success π< 0on failure π
π SEE ALSO
- Kernel file
./drivers/net/phy/broadcom.c lre_update_link(9)
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
- 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