e1000_read_phy_reg(9)
π e1000_read_phy_reg β like, the whole manual page, bestie
okay so real talk: this little function lives in the Kernel API Manual (yeah, that's the manual-name flex, we're in the big leagues) and it's literally just "go get me the value sitting in a PHY register." That's the whole vibe. Let's get into it π«Ά
β¨ NAME β¨
e1000_read_phy_reg β read a phy register
likeβ¦ that's it. that's the function. she reads a phy register. iconic, unbothered, minimal. periodt π
πΈ SYNOPSIS πΈ
s32 e1000_read_phy_reg (struct e1000_hw *hw , u32 reg_addr , u16
*phy_data );
look at her. three args, returns an s32, no drama. (well, the drama is in the description, but we'll get there π)
π ARGUMENTS π
hwβ this is the struct holding all the variables that the shared code pokes at. she's the group chat everybody's in. π¬reg_addrβ the address of the PHY register you wanna read, i.e. which register we're sliding into. πphy_dataβ a pointer to the value that lives on the PHY register. note: pointer, not the value itself, so be normal about it β¨
π¦ DESCRIPTION π¦
So what does she actually do? She reads the value from a PHY register. simple. chef's kiss. no cap. π₯
But β and this is the plot twist β if that value happens to live on a specific non-zero page, she sets the page first. like, she's not just grabbing the value, she's making sure the page is right before she grabs it. considerate queen behavior π and yes, that's the only nuance, but it's the nuance, so don't sleep on it.
β SEE ALSO β
okay bestie, buckle up, because this list is a whole friend group. the kernel file first:
./drivers/net/ethernet/intel/e1000/e1000_hw.c
and then, the roster (yes, all of them, i'm not skipping a single one, we don't do that here π):
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_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_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)
like i said. a whole friend group. go say hi to all of them, they're all (9) and they all matter π
ngl there's no WARNINGS or BUGS section on this one β she's a short page, and honestly? short and correct is the moment. π§
and that's the page, bestie!! π tiny sign-off for the formal girlies: this one's from the source ./drivers/net/ethernet/intel/e... and the date stamp on it is October 2026. it's e1000_read_phy_reg(9) and she ate. slay, stay hydrated, and always set the page first πβ¨π¦
π¦ 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