t3_phy_reset(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… t3_phy_reset(9) β€” or, "how to factory-reset a PHY block and make it look effortless"

okay so real talk, this page lives in the Kernel API Manual (that's the manual name, bestie, we're fancy now ✨) and it's all about one tiny function that goes bonk on a PHY block and resets it. short page, big main-character energy. let's get into it πŸŽ€


✨ NAME ✨

t3_phy_reset β€” reset a PHY block πŸŒ€


🌸 SYNOPSIS 🌸

int t3_phy_reset (struct cphy *phy , int mmd , int wait );

three args, returns an int, no crumbs left behind. iconic behavior honestly πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • phy β€” the PHY we're operating on 🫢 like, the actual victim of the reset. the whole point.
  • mmd β€” the device address of the PHY block that's getting reset. yes, you have to know which block. no, it can't guess. πŸ™ˆ
  • wait β€” how long to wait for the reset to finish, measured in 1ms increments. so like, wait of 5 = 5ms of chilling. ⏳

πŸ’– DESCRIPTION πŸ’–

so what does it actually do. it resets a PHY block, and then β€” optionally, if you asked nicely β€” it waits for that reset to complete. πŸ“Ÿβœ¨

and now the part you need to remember, no cap:

  • mmd should be 0 for 10/100/1000 PHYs
  • for 10G PHYs, pass the device address to reset

that's literally it. that's the whole vibe check. get your mmd right and you're slaying. get it wrong and, well... 😭

⚠️ heads up: pick the wrong mmd for your PHY type and you're not resetting the thing you think you're resetting. read the two bullets above again. i'll wait. πŸ’€

πŸ”₯ SEE ALSO πŸ”₯

the extended universe, fr fr β€” this function does not exist alone and the manpage wants you to know it πŸ‘‘


πŸŽ€ and that's the whole page, bestie πŸŽ€

this little love letter ships from source <purple>./drivers/net/ethernet/chelsio...</purple> (they truncated it, not me 😭) and it's dated October 2026. go reset something responsibly. mwah πŸ’‹πŸ’–

πŸ“¦ where this page comes from