ice_write_40...p_reg_eth56g(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ice_write_40b_ptp_reg_eth56g β€” a Kernel API Manual moment ✨

okay so bestie, welcome to the Kernel API Manual page for ice_write_40b_ptp_reg_eth56g(9) β€” yes that whole entire title, we're not abbreviating, we're not hiding it, it's the main character and it knows it πŸŽ€


✨ NAME ✨

ice_write_40b_ptp_reg_eth56g β€” write a 40b value to the PHY πŸ¦‹

like, literally that's the whole job. write forty bits. to the PHY. slay.


🌸 SYNOPSIS 🌸

int ice_write_40b_ptp_reg_eth56g (struct ice_hw *hw , u8 port , u16
low_addr , u64 val );

(the line break in the middle of the declaration is not a vibe choice, that's just how the page renders it β€” copy it verbatim, don't @ me πŸ’€)


πŸ’– ARGUMENTS πŸ’–

  • hw β€” pointer to the HW struct. the hardware. the whole situation. you hand her a pointer and she knows what to do 🫢
  • port β€” port to write to. which port, bestie? this one. that's the one πŸ”₯
  • low_addr β€” offset of the low register. the low one. remember that, it's gonna matter in a sec πŸ‘€
  • val β€” the 40b value to write. forty bits of pure potential ✨

⭐ DESCRIPTION ⭐

so here's the tea β˜• β€” this function first does a vibe check on your low_addr. it checks if the caller has specified a known 40 bit register offset. if you did? iconic. if you didn't? we'll get to that in RETURN, bestie, don't worry 😭

once the offset passes, it writes the provided 40b value to the two associated registers by splitting it up into two chunks:

  • the lower 8 bits πŸ“
  • the upper 32 bits πŸ’œ

that's it. that's the whole split. 8 + 32 = 40, the math is mathing, no cap πŸ“βœ¨


πŸ‘‘ RETURN πŸ‘‘

  • 0 β€” success πŸ’… you ate
  • EINVAL β€” not a 40 bit register πŸ™ˆ that's the vibe check failing babe, it means the offset you gave isn't a known 40 bit one
  • other β€” failed to write to PHY 😭 something else went sideways on the way to the hardware

🌈 SEE ALSO 🌈

okay this list is genuinely enormous and we are NOT skipping a single one of them, every name stays, in order, periodt πŸ‘‘

and last but never ever least, the actual source file you should go read with your own two eyeballs:

  • Kernel file ./drivers/net/ethernet/intel/ice/ice_ptp_hw.c 🧚

lowkey a whole ecosystem of eth56g, e82x, e810 and e830 functions in that list, and every single one of them got their shoutout. we don't do "etc." here πŸ’€

okay bestie that's the page!! this came to you from ./drivers/net/ethernet/intel/ice and it's dated October 2026 🌸 go forth, write your 40 bits, split them 8 and 32, and remember β€” if you get EINVAL, it's not you, it's the offset πŸ’– mwah 🫢✨

πŸ“¦ where this page comes from