e1000_set_phy_mode(9)
π e1000_set_phy_mode β like, the Kernel API Manual page you didn't know you needed π
okay so bestie, buckle in, because we're about to talk about e1000_set_phy_mode β yes it's a (9) page, yes it lives in the Kernel API Manual, and yes it's giving "I set the PHY to class A mode and I did it flawlessly" π
β¨ NAME β¨
e1000_set_phy_mode β set the PHY to class A mode π¦
πΈ SYNOPSIS πΈ
s32 e1000_set_phy_mode (struct e1000_hw *hw );
so it takes one arg and hands you back an s32, no cap. that's the whole signature, bestie, we love a clean one π«Ά
π ARGUMENTS π
hwβ the struct holding all the variables that shared code needs to poke at π literally the main character of this function call.
β DESCRIPTION β
here's the vibe: this function sets the PHY to class A mode, and it's got a whole assumption going on β it assumes the following operations are gonna follow, so that the new class mode actually gets enabled β¨ like, it's the setup queen, not the whole story.
- do a PHY soft reset π«
- restart auto-negotiation or force link π₯
that's it, that's the assumption list. two steps. she's efficient! no extra behaviour hinted at, no guesses made, we're just telling you what this function expects to happen next, fr fr.
π SEE ALSO π
the friend group is huge, ngl, so here's everyone, in order, no one left out π:
- Kernel file
./drivers/net/ethernet/intel/e1000/e1000_hw.c 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_reset_adaptive(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_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)
like I said β massive friend group. say hi to all of them or don't, but they're all here π
and that's the page!! this one came from source/version ./drivers/net/ethernet/intel/e... and it's dated October 2026 β screenshot it, cite it, frame it, whatever, it's iconic ππ
π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms