e1000e_get_cable_length_m88(9)
๐ e1000e_get_cable_length_m88(9) โ the Kernel API Manual, bestie edition
Okay so we're in the Kernel API Manual today and the main character is e1000e_get_cable_length_m88(9). Yes that's a mouthful. Yes you're gonna say it out loud at least once. Let's go โจ
๐ธ NAME ๐ธ
e1000e_get_cable_length_m88 โ figure out how long the cable is for the m88 PHY ๐
๐ฆ SYNOPSIS ๐ฆ
s32 e1000e_get_cable_length_m88 (struct e1000_hw *hw );
๐ ARGUMENTS ๐
hwโ pointer to the HW structure. that's it. that's the whole argument list. slay ๐
๐ฅ DESCRIPTION ๐ฅ
So the vibe here is: this function reads the PHY specific status register to pull out the cable length info. That's the whole job. Iconic, lowkey.
Then it determines the cable length by averaging the minimum and maximum values to get the "average" cable length. Math! We love her. ๐งฎโจ
The m88 PHY has four possible cable length values, which are:
- Register Value
0โ Cable Length< 50 meters - Register Value
1โ Cable Length50 - 80 meters - Register Value
2โ Cable Length80 - 110 meters - Register Value
3โ Cable Length110 - 140 meters - Register Value
4โ Cable Length> 140 meters
Like, register says a number, you get a distance. It's giving very much lookup-table energy and honestly? Obsessed. ๐
๐ SEE ALSO ๐
First up, the kernel file where this whole situation lives:
./drivers/net/ethernet/intel/e1000e/phy.c
And now, the friend group. Everyone below is (9), no cap, and yes we're listing every single one because nobody gets left behind ๐ซถ:
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_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)
And that's the page, bestie ๐ mwah ๐ โ this lil writeup came from ./drivers/net/ethernet/intel/e... and it's dated October 2026, footer name and all: e1000e_get_cable_length_m88(9). Go measure a cable, you got this ๐โจ
๐ฆ 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