e1000_set_eee_pchlan(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– e1000_set_eee_pchlan(9) β€” the kernel API manual, but make it make sense πŸŽ€

okay so bestie, we're diving into the e1000_set_eee_pchlan(9) page from the Kernel API Manual. it's giving "niche Intel ethernet driver lore" and honestly? kind of iconic. let's get into it ✨


✨ NAME ✨

e1000_set_eee_pchlan β€” the function that turns EEE support on and off πŸ’…


🌸 SYNOPSIS 🌸

s32 e1000_set_eee_pchlan (struct e1000_hw *hw );

like, that's the whole signature. no cap. 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • hw β€” a pointer to the HW structure. that's it, that's the one thing you pass in πŸ’–

🧚 DESCRIPTION 🧚

so what does this actually do? it enables or disables EEE based on three things, and you gotta hold all three in your head at once:

  1. the setting in the dev_spec structure
  2. the duplex of the link
  3. the EEE capabilities of the link partner

the LPI Control register bits will stay set only if/when the link is up β€” that's the condition, periodt. πŸ”₯

and here's the caveat that's honestly so important, so listen up: EEE LPI must not be asserted earlier than one second after link is up. on the 82579, EEE LPI should not be enabled until that time passes β€” otherwise you can get link issues with some switches 😭. other devices can have EEE LPI enabled immediately upon link up, because they have a timer in hardware that prevents LPI from being asserted too early. so like, hardware-carrying the timing for you, love that for them πŸ’…


πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file lives at ./drivers/net/ethernet/intel/e1000e/ich8lan.c β€” go read it if you're feeling brave 🫢

and here's the whole friend group, no one left out:


and that's the page πŸ’–βœ¨ this one comes from ./drivers/net/ethernet/intel/e... and it's dated October 2026 β€” so go forth, enable and disable your EEE with confidence, and remember the one-second rule or the switches will simply not slay 😭🫢

πŸ“¦ where this page comes from