e1000_check_polarity(9)
π e1000_check_polarity β nope, we're checking the cable polarity, bestie
okay so welcome to the e1000_check_polarity(9) page from the Kernel API Manual, aka the little function that looks at your cable and goes "hmm, is u reversed or not." sit down, we're doing this together π«Ά
β¨ SYNOPSIS β¨
s32 e1000_check_polarity (struct e1000_hw *hw , e1000_rev_polarity
*polarity );
that's literally it. two args, one return, zero drama. periodt.
π ARGUMENTS π
hwβ the struct with all the variables the shared code pokes at. it's giving "everything bagel" of driver state πpolarityβ this one's an output parameter, so it comes back filled in:0β polarity is not reversed1β polarity is reversed π
π₯ RETURN π₯
E1000_ERR_XXXE1000_SUCCESS
both of those, that's the list, no cap. β
πΈ DESCRIPTION πΈ
so here's the tea β β the logic branches by phy generation, and the vibes differ:
- for phy's older than IGP, this function simply reads the polarity bit in the Phy Status register. easy. iconic. one read and done β¨
- for IGP phy's, that bit is only valid when the link speed is
10Mbps. iykyk. - if the link speed is
100Mbps β there is no polarity, so this bit will return0. it's not broken, there's just nothing to report π - if the link speed is
1000Mbps β the polarity status lives inIGP01E1000_PHY_PCS_INIT_REGinstead. different register, same mission π
π¦ SEE ALSO π¦
kernel file ./drivers/net/ethernet/intel/e1000/e1000_hw.c β and honestly the whole friend group:
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_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)
go read them all, i'll wait π
that's the whole page, bestie β no crumbs left. this edition came from ./drivers/net/ethernet/intel/e... and it's dated October 2026, so like, keep that in mind. mwah, love u, go check some polarity πππ
π¦ 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