e1000_reset_adaptive(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– e1000_reset_adaptive β€” Kernel API Manual, bestie edition πŸ’–

okay so like. this is a page from the Kernel API Manual, and the star of the show is e1000_reset_adaptive(9) β€” the little function that puts Adaptive IFS back to its factory-default vibe. it's giving "factory reset but make it networking" and honestly? iconic. 🌸


✨ NAME ✨

e1000_reset_adaptive β€” Resets Adaptive IFS to its default state. no cap, that's literally the whole job. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

void e1000_reset_adaptive (struct e1000_hw *hw );

returns nothing (void, she gives nothing and that's fine πŸ’…), takes one pointer, and yes the spacing in the original is exactly like that β€” we do not touch the code, ever. πŸ”₯


πŸ‘‘ ARGUMENTS πŸ‘‘

  • hw β€” Struct containing variables accessed by shared code. that's it. that's the whole argument. it's the struct e1000_hw * from the synopsis, and it's carrying all the shared-code variables, so treat her with respect. πŸ’œ

⭐ DESCRIPTION ⭐

okay bestie here's the tea 🍡 β€” call this after e1000_init_hw. like, after after. that's the order and we do not freelance it. 🫢

you may override the IFS defaults, but you do it by setting hw->ifs_params_forced to <italic>true</italic>. sounds chill, right? however 😭 β€” plot twist β€” you must initialize all of these first, before you call this function:

  • hw->current_ifs_val
  • ifs_min_val
  • ifs_max_val
  • ifs_step_size
  • ifs_ratio
⚠️ real talk: if you flip hw->ifs_params_forced to <italic>true</italic> and then forget any one of those five fields, that's on you. the manpage says must, and must means must. πŸ™ˆ

so: init hardware first, set up your override fields, set the forced flag, then call. in that order. slay in sequence, not in chaos. ✨


🌈 SEE ALSO 🌈

the source of truth lives right here in the kernel tree, and it's literally:

  • ./drivers/net/ethernet/intel/e1000/e1000_hw.c

and because this function has so many friends, here's the entire squad β€” all of them, no gatekeeping, periodt πŸ‘‘:

e1000_set_phy_type(9), e1000_phy_init_script(9), e1000_set_mac_type(9), e1000_set_media_type(9), e1000_reset_hw(9), e1000_init_hw(9), e1000_adjust_serdes_amplitude(9), e1000_setup_link(9), e1000_setup_fiber_serdes_link(9), e1000_copper_link_rtl_setup(9), e1000_copper_link_preconfig(9), e1000_copper_link_igp_setup(9), e1000_copper_link_mgp_setup(9), e1000_copper_link_autoneg(9), e1000_copper_link_postconfig(9), e1000_setup_copper_link(9), e1000_phy_setup_autoneg(9), e1000_phy_force_speed_duplex(9), e1000_config_collision_dist(9), e1000_config_mac_to_phy(9), e1000_force_mac_fc(9), e1000_config_fc_after_link_up(9), e1000_check_for_serdes_link_generic(9), e1000_check_for_link(9), e1000_get_speed_and_duplex(9), e1000_wait_autoneg(9), e1000_raise_mdi_clk(9), e1000_lower_mdi_clk(9), e1000_shift_out_mdi_bits(9), e1000_shift_in_mdi_bits(9), e1000_read_phy_reg(9), e1000_write_phy_reg(9), e1000_phy_hw_reset(9), e1000_phy_reset(9), e1000_detect_gig_phy(9), e1000_phy_reset_dsp(9), e1000_phy_igp_get_info(9), e1000_phy_m88_get_info(9), e1000_phy_get_info(9), e1000_init_eeprom_params(9), e1000_raise_ee_clk(9), e1000_lower_ee_clk(9), e1000_shift_out_ee_bits(9), e1000_shift_in_ee_bits(9), e1000_acquire_eeprom(9), e1000_standby_eeprom(9), e1000_release_eeprom(9), e1000_spi_eeprom_ready(9), e1000_read_eeprom(9), e1000_validate_eeprom_checksum(9), e1000_update_eeprom_checksum(9), e1000_write_eeprom(9), e1000_write_eeprom_spi(9), e1000_write_eeprom_microwire(9), e1000_read_mac_addr(9), e1000_init_rx_addrs(9), e1000_hash_mc_addr(9), e1000_rar_set(9), e1000_write_vfta(9), e1000_clear_vfta(9), e1000_setup_led(9), e1000_cleanup_led(9), e1000_led_on(9), e1000_led_off(9), e1000_clear_hw_cntrs(9), e1000_update_adaptive(9), e1000_get_bus_info(9), e1000_write_reg_io(9), e1000_get_cable_length(9), e1000_check_polarity(9), e1000_check_downshift(9), e1000_config_dsp_after_link_change(9), e1000_set_phy_mode(9), e1000_set_d3_lplu_state(9), e1000_set_vco_speed(9), e1000_enable_mng_pass_thru(9), e1000_get_auto_rd_done(9), e1000_get_phy_cfg_done(9)

πŸ’€ lowkey a whole friend group. e1000_update_adaptive(9) is right there next to e1000_reset_adaptive(9) if you ever feel like updating instead of resetting β€” iykyk.

and that's the page!! 🧚 from ./drivers/net/ethernet/intel/e... (yes, truncated just like that in the footer), October 2026 edition, closing out with e1000_reset_adaptive(9) one more time for the girls at the back. go reset that Adaptive IFS, bestie, you're gonna ate. πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from