igb_get_cable_length_m88(9)
β¨ igb_get_cable_length_m88(9) β¨
okay so bestie, welcome to the Kernel API Manual β this is the page for igb_get_cable_length_m88(9), and it's literally about figuring out how long the cable is. yes. the physical cable. we're measuring vibes in meters π
π NAME π
igb_get_cable_length_m88 β determine cable length for the m88 PHY π§
πΈ SYNOPSIS πΈ
s32 igb_get_cable_length_m88 (struct e1000_hw *hw );
π ARGUMENTS π
hwβ pointer to the HW structure, aka the whole hardware situation. she's the main character of this function π«Ά
π₯ DESCRIPTION π₯
So basically this function reads the PHY specific status register to pull out the cable length info π that's the whole move.
Then, because the register is kind of an icon but not super precise, the cable length gets determined by averaging the minimum and maximum values to get the "average" cable length. math but make it lowkey π
The m88 PHY has four possible cable length values, and here's the whole mapping, no cap:
- Register Value
0β < 50 meters - Register Value
1β 50 - 80 meters - Register Value
2β 80 - 110 meters - Register Value
3β 110 - 140 meters - Register Value
4β > 140 meters
that's it, that's the scale. four vibes, five rows, it's giving precision-by-bracket πβ¨
π¦ SEE ALSO π¦
Kernel file:
./drivers/net/ethernet/intel/igb/e1000_phy.c
and the whole friend group (yes, the entire group chat, iykyk):
igb_check_reset_block(9)igb_get_phy_id(9)igb_phy_reset_dsp(9)igb_read_phy_reg_mdic(9)igb_write_phy_reg_mdic(9)igb_read_phy_reg_i2c(9)igb_write_phy_reg_i2c(9)igb_read_sfp_data_byte(9)igb_read_phy_reg_igp(9)igb_write_phy_reg_igp(9)igb_copper_link_setup_82580(9)igb_copper_link_setup_m88(9)igb_copper_link_setup_m88_gen2(9)igb_copper_link_setup_igp(9)igb_copper_link_autoneg(9)igb_phy_setup_autoneg(9)igb_setup_copper_link(9)igb_phy_force_speed_duplex_igp(9)igb_phy_force_speed_duplex_m88(9)igb_phy_force_speed_duplex_setup(9)igb_set_d3_lplu_state(9)igb_check_downshift(9)igb_check_polarity_m88(9)igb_check_polarity_igp(9)igb_wait_autoneg(9)igb_phy_has_link(9)igb_get_cable_length_igp_2(9)igb_get_phy_info_m88(9)igb_get_phy_info_igp(9)igb_phy_sw_reset(9)igb_phy_hw_reset(9)igb_phy_init_script_igp3(9)igb_initialize_M88E1512_phy(9)igb_initialize_M88E1543_phy(9)igb_power_up_phy_copper(9)igb_power_down_phy_copper(9)igb_check_polarity_82580(9)igb_phy_force_speed_duplex_82580(9)igb_get_phy_info_82580(9)igb_get_cable_length_82580(9)igb_set_master_slave_mode(9)
and that's the whole page, bestie πβ¨
cute little sign-off before you go: this one lives under ./drivers/net/ethernet/intel/igb and the version/date situation is October 2026 β so she's dated, she's sourced, she's iconic. love that for her ππ¦
π¦ 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