e1000e_phy_hw_reset_generic(9)
π e1000e_phy_hw_reset_generic(9) β PHY hardware reset
okay so bestie, welcome to this Kernel API Manual page for e1000e_phy_hw_reset_generic(9). It's giving tiny reset routine, major main character energy, and we're gonna get through it together, no cap.
πΈ NAME
e1000e_phy_hw_reset_generic β PHY hardware reset
β¨ SYNOPSIS
s32 e1000e_phy_hw_reset_generic (struct e1000_hw *hw );
π«Ά ARGUMENTS
hwβ pointer to the HW structure. that's it, that's the argument, periodt.
π DESCRIPTION
okay so first it verifies the reset block is not blocking us from resetting. like, we need the reset lane clear before we do the thing, obviously.
then it acquires the semaphore (if necessary) and reads/sets/writes the device control reset bit in the PHY. yes, read/set/write β the whole little bit-flip moment.
after that it waits the appropriate delay time for the device to reset, and releases the semaphore (if necessary). lowkey elegant, highkey necessary. π
π¦ SEE ALSO
- kernel file:
./drivers/net/ethernet/intel/e1000e/phy.c 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_set_d3_lplu_state(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_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)
and that's the whole page, bestie! source/version:./drivers/net/ethernet/intel/e...Β· date:October 2026β go forth and reset that PHY with main character energy,e1000e_phy_hw_reset_generic(9)style π β¨
π¦ 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