e1000e_set_d3_lplu_state(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 hey bestie, welcome to the e1000e_set_d3_lplu_state(9) glow-up 🌸

okay so this is a page straight out of the Kernel API Manual, and the main character is e1000e_set_d3_lplu_state(9) β€” yes the whole title, she's that girl πŸ’…. sit down, grab a strawberry drink πŸ“, and let's get into it because this little function is doing real power-management work and honestly? iconic.


✨ NAME ✨

e1000e_set_d3_lplu_state β€” literally just sets the low power link up state for D3. that's the whole vibe. πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

s32 e1000e_set_d3_lplu_state (struct e1000_hw *hw , bool active );

so she takes two things and hands you back an s32. simple, clean, no cap. ✨


πŸ’– ARGUMENTS πŸ’–

  • hw β€” pointer to the HW structure. like, the actual hardware situation. you gotta hand her the goods 🫢
  • active β€” a boolean, and it's the switch: enable or disable lplu. true = on, false = off, it's giving very binary of her πŸ’€

πŸ”₯ DESCRIPTION πŸ”₯

okay so first things first, the return tea β˜•:

Success returns 0, Failure returns 1

that's it. zero is the slay outcome, one means something went sideways 😭.

now the actual lore: the low power link up (lplu) state gets set to the power management level D3, and SmartSpeed is disabled, when active is true. otherwise β€” meaning when active isn't true β€” you clear lplu for D3 and you enable Smartspeed instead. so it's one or the other, always πŸ”.

and here's the key bit, bestie, do not miss this: LPLU and Smartspeed are mutually exclusive. they cannot coexist. it's givingex-energy 🌈.

LPLU is the one you bring out during the Dx states, aka the moments where power conservation is the most important thing in the world πŸ‘‘. but during driver activity? that's SmartSpeed's era β€” it should be enabled so performance is maintained. performance stays cute, periodt. πŸ”₯


🧚 SEE ALSO 🧚

the kernel file in question, for the curious girlies:

Kernel file ./drivers/net/ethernet/intel/e1000e/phy.c

and now the full friend group 🫢 β€” every single one of these nerds is invited to the party:

e1000e_check_reset_block_generic(9), e1000e_get_phy_id(9), e1000e_phy_reset_dsp(9), e1000e_read_phy_reg_mdic(9), e1000e_write_phy_reg_mdic(9), e1000e_read_phy_reg_m88(9), e1000e_write_phy_reg_m88(9), e1000_set_page_igp(9), __e1000e_read_phy_reg_igp(9), e1000e_read_phy_reg_igp(9), e1000e_read_phy_reg_igp_locked(9), __e1000e_write_phy_reg_igp(9), e1000e_write_phy_reg_igp(9), e1000e_write_phy_reg_igp_locked(9), __e1000_read_kmrn_reg(9), e1000e_read_kmrn_reg(9), e1000e_read_kmrn_reg_locked(9), __e1000_write_kmrn_reg(9), e1000e_write_kmrn_reg(9), e1000e_write_kmrn_reg_locked(9), e1000_set_master_slave_mode(9), e1000_copper_link_setup_82577(9), e1000e_copper_link_setup_m88(9), e1000e_copper_link_setup_igp(9), e1000_phy_setup_autoneg(9), e1000_copper_link_autoneg(9), e1000e_setup_copper_link(9), e1000e_phy_force_speed_duplex_igp(9), e1000e_phy_force_speed_duplex_m88(9), e1000_phy_force_speed_duplex_ife(9), e1000e_phy_force_speed_duplex_setup(9), e1000e_check_downshift(9), e1000_check_polarity_m88(9), e1000_check_polarity_igp(9), e1000_check_polarity_ife(9), e1000_wait_autoneg(9), e1000e_phy_has_link_generic(9), e1000e_get_cable_length_m88(9), e1000e_get_cable_length_igp_2(9), e1000e_get_phy_info_m88(9), e1000e_get_phy_info_igp(9), e1000_get_phy_info_ife(9), e1000e_phy_sw_reset(9), e1000e_phy_hw_reset_generic(9), e1000e_get_cfg_done_generic(9), e1000e_phy_init_script_igp3(9), e1000e_get_phy_type_from_id(9), e1000e_determine_phy_address(9), e1000_get_phy_addr_for_bm_page(9), e1000e_write_phy_reg_bm(9), e1000e_read_phy_reg_bm(9), e1000e_read_phy_reg_bm2(9), e1000e_write_phy_reg_bm2(9), e1000_enable_phy_wakeup_reg_access_bm(9), e1000_disable_phy_wakeup_reg_access_bm(9), e1000_access_phy_wakeup_reg_bm(9), e1000_power_up_phy_copper(9), e1000_power_down_phy_copper(9), __e1000_read_phy_reg_hv(9), e1000_read_phy_reg_hv(9), e1000_read_phy_reg_hv_locked(9), e1000_read_phy_reg_page_hv(9), __e1000_write_phy_reg_hv(9), e1000_write_phy_reg_hv(9), e1000_write_phy_reg_hv_locked(9), e1000_write_phy_reg_page_hv(9), e1000_get_phy_addr_for_hv_page(9), e1000_access_phy_debug_regs_hv(9), e1000_link_stall_workaround_hv(9), e1000_check_polarity_82577(9), e1000_phy_force_speed_duplex_82577(9), e1000_get_phy_info_82577(9), e1000_get_cable_length_82577(9)

like, that's a whole friend group and every single one of them made the list. we love a well-documented phy family πŸ’œ


okay that's the whole page, bestie!! mwah 😘

signed off from ./drivers/net/ethernet/intel/e... β€” October 2026 β€” stay low-power in D3, stay speedy during activity, and remember: LPLU and SmartSpeed can never be in the same room πŸ’…βœ¨πŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from