115 36, 72, 144, 1, 2, 4, 8, 16, 35, 70, 140 };
116#define E1000_82580_RXPBS_TABLE_SIZE \
117 (sizeof(e1000_82580_rxpbs_table) / \
118 sizeof(e1000_82580_rxpbs_table[0]))
131 bool ext_mdio =
false;
133 DEBUGFUNC(
"e1000_sgmii_uses_mdio_82575");
165 DEBUGFUNC(
"e1000_init_phy_params_82575");
194 ctrl_ext &= ~E1000_CTRL_I2C_ENA;
329 DEBUGFUNC(
"e1000_init_mac_params_82575");
447 DEBUGFUNC(
"e1000_init_nvm_params_82575");
528 DEBUGFUNC(
"e1000_init_function_pointers_82575");
550 DEBUGFUNC(
"e1000_read_phy_reg_sgmii_82575");
553 DEBUGOUT1(
"PHY Address %u is out of range\n", offset);
583 DEBUGFUNC(
"e1000_write_phy_reg_sgmii_82575");
586 DEBUGOUT1(
"PHY Address %d is out of range\n", offset);
676 DEBUGOUT2(
"Vendor ID 0x%08X read at address %u\n",
685 DEBUGOUT1(
"PHY address %u was unreadable\n",
691 if (phy->
addr == 8) {
716 DEBUGFUNC(
"e1000_phy_hw_reset_sgmii_82575");
723 DEBUGOUT(
"Soft resetting SGMII attached PHY...\n");
765 DEBUGFUNC(
"e1000_set_d0_lplu_state_82575");
784 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
790 data &= ~IGP02E1000_PM_D0_LPLU;
819 data &= ~IGP01E1000_PSCFR_SMART_SPEED;
850 DEBUGFUNC(
"e1000_set_d0_lplu_state_82580");
858 data &= ~E1000_82580_PM_SPD;
860 data &= ~E1000_82580_PM_D0_LPLU;
871 data &= ~E1000_82580_PM_SPD;
897 DEBUGFUNC(
"e1000_set_d3_lplu_state_82580");
902 data &= ~E1000_82580_PM_D3_LPLU;
912 data &= ~E1000_82580_PM_SPD;
918 data &= ~E1000_82580_PM_SPD;
955 DEBUGOUT(
"Nvm bit banging access error detected and cleared.\n");
965 DEBUGOUT(
"Nvm bit banging access error detected and cleared.\n");
1023 DEBUGOUT(
"MNG configuration cycle has not completed.\n");
1048 DEBUGFUNC(
"e1000_get_link_up_info_82575");
1072 DEBUGFUNC(
"e1000_check_for_link_82575");
1092 DEBUGOUT(
"Error configuring flow control\n");
1113 DEBUGFUNC(
"e1000_check_for_link_media_swap");
1170 DEBUGFUNC(
"e1000_power_up_serdes_link_82575");
1183 reg &= ~E1000_CTRL_EXT_SDP3_DATA;
1207 DEBUGFUNC(
"e1000_get_pcs_speed_and_duplex_82575");
1268 DEBUGFUNC(
"e1000_shutdown_serdes_link_82575");
1277 reg &= ~E1000_PCS_CFG_PCS_EN;
1312 DEBUGOUT(
"PCI-E Master disable polling has failed.\n");
1317 DEBUGOUT(
"PCI-E Set completion timeout has failed.\n");
1319 DEBUGOUT(
"Masking off all interrupts\n");
1330 DEBUGOUT(
"Issuing a global reset to MAC\n");
1340 DEBUGOUT(
"Auto Read Done did not complete\n");
1373 DEBUGOUT(
"Error initializing identification LED\n");
1378 DEBUGOUT(
"Initializing the IEEE VLAN\n");
1409 DEBUGFUNC(
"e1000_setup_copper_link_82575");
1423 phpm_reg &= ~E1000_82580_PM_GO_LINKD;
1440 DEBUGOUT(
"Error resetting the PHY.\n");
1448 switch (hw->
phy.
id) {
1497 u32 ctrl_ext, ctrl_reg, reg, anadv_reg;
1502 DEBUGFUNC(
"e1000_setup_serdes_link_82575");
1518 ctrl_ext &= ~E1000_CTRL_EXT_SDP3_DATA;
1542 pcs_autoneg =
false;
1554 pcs_autoneg =
false;
1587 reg &= ~E1000_PCS_LCTL_FORCE_FCTRL;
1608 DEBUGOUT1(
"Configuring Autoneg:PCS_LCTL=0x%08X\n", reg);
1616 DEBUGOUT1(
"Configuring Forced Link:PCS_LCTL=0x%08X\n", reg);
1655 switch (link_mode) {
1695 ctrl_ext &= ~E1000_CTRL_EXT_LINK_MODE_MASK;
1723 u8 tranceiver_type = 0;
1728 ctrl_ext &= ~E1000_CTRL_EXT_SDP3_DATA;
1766 DEBUGOUT(
"PHY module has not been recognized\n");
1791 DEBUGFUNC(
"e1000_valid_led_default_82575");
1837 DEBUGFUNC(
"e1000_reset_init_script_82575");
1840 DEBUGOUT(
"Running reset init script for 82575\n");
1902 DEBUGFUNC(
"e1000_config_collision_dist_82575");
1906 tctl_ext &= ~E1000_TCTL_EXT_COLD;
1921 DEBUGFUNC(
"e1000_clear_hw_cntrs_82575");
2023 gcr &= ~E1000_GCR_CMPL_TMOUT_RESEND;
2039 u32 reg_val, reg_offset;
2085 dtxswc &= ~E1000_DTXSWC_VMDQ_LOOPBACK_EN;
2094 dtxswc &= ~E1000_DTXSWC_VMDQ_LOOPBACK_EN;
2119 vt_ctl &= ~E1000_VT_CTL_VM_REPL_EN;
2248 DEBUGOUT(
"PCI-E Master disable polling has failed.\n");
2250 DEBUGOUT(
"Masking off all interrupts\n");
2289 DEBUGOUT(
"Auto Read Done did not complete\n");
2301 DEBUGOUT(
"Could not reset MDICNFG based on EEPROM\n");
2348 DEBUGFUNC(
"e1000_validate_nvm_checksum_with_offset");
2351 ret_val = hw->
nvm.
ops.
read(hw, i, 1, &nvm_data);
2356 checksum += nvm_data;
2360 DEBUGOUT(
"NVM Checksum Invalid\n");
2385 DEBUGFUNC(
"e1000_update_nvm_checksum_with_offset");
2388 ret_val = hw->
nvm.
ops.
read(hw, i, 1, &nvm_data);
2390 DEBUGOUT(
"NVM Read Error while updating checksum.\n");
2393 checksum += nvm_data;
2399 DEBUGOUT(
"NVM Write Error while updating checksum.\n");
2416 u16 eeprom_regions_count = 1;
2420 DEBUGFUNC(
"e1000_validate_nvm_checksum_82580");
2431 eeprom_regions_count = 4;
2434 for (j = 0; j < eeprom_regions_count; j++) {
2460 DEBUGFUNC(
"e1000_update_nvm_checksum_82580");
2464 DEBUGOUT(
"NVM Read Error while updating checksum compatibility bit.\n");
2474 DEBUGOUT(
"NVM Write Error while updating checksum compatibility bit.\n");
2479 for (j = 0; j < 4; j++) {
2504 DEBUGFUNC(
"e1000_validate_nvm_checksum_i350");
2506 for (j = 0; j < 4; j++) {
2532 DEBUGFUNC(
"e1000_update_nvm_checksum_i350");
2534 for (j = 0; j < 4; j++) {
2553 u16 *data,
bool read)
2595 DEBUGFUNC(
"e1000_initialize_M88E1512_phy");
2664 DEBUGOUT(
"Error committing the PHY changes\n");
2684 DEBUGFUNC(
"e1000_initialize_M88E1543_phy");
2763 DEBUGOUT(
"Error committing the PHY changes\n");
2800 ipcnfg &= ~E1000_IPCNFG_EEE_100M_AN;
2805 ipcnfg &= ~E1000_IPCNFG_EEE_1G_AN;
2812 DEBUGOUT(
"LPI Clock Stop Bit should not be set!\n");
2881 phy_data &= ~E1000_EEE_ADV_100_SUPPORTED;
2886 phy_data &= ~E1000_EEE_ADV_1000_SUPPORTED;
2965 for (i = 0; i < 10; i++)
2987 for (i = 0; i < 10; i++)
3004 u32 ctrl_ext, i2cparams;
3034 u8 dev_addr,
u8 *data)
3043 DEBUGFUNC(
"e1000_read_i2c_byte_generic");
3098 if (retry < max_retry)
3099 DEBUGOUT(
"I2C byte read error - Retrying.\n");
3101 DEBUGOUT(
"I2C byte read error.\n");
3103 }
while (retry < max_retry);
3123 u8 dev_addr,
u8 data)
3130 DEBUGFUNC(
"e1000_write_i2c_byte_generic");
3136 goto write_byte_out;
3172 if (retry < max_retry)
3173 DEBUGOUT(
"I2C byte write error - Retrying.\n");
3175 DEBUGOUT(
"I2C byte write error.\n");
3176 }
while (retry < max_retry);
3256 for (i = 7; i >= 0; i--) {
3278 for (i = 7; i >= 0; i--) {
3279 bit = (data >> i) & 0x1;
3318 for (i = 0; i < timeout; i++) {
3329 DEBUGOUT(
"I2C ack was not received.\n");
3397 DEBUGOUT1(
"I2C data was not set to %X\n", data);
3414 *i2cctl &= ~E1000_I2C_CLK_OE_N;
3434 *i2cctl &= ~E1000_I2C_CLK_OUT;
3435 *i2cctl &= ~E1000_I2C_CLK_OE_N;
3460 *i2cctl &= ~E1000_I2C_DATA_OUT;
3462 *i2cctl &= ~E1000_I2C_DATA_OE_N;
3473 DEBUGOUT1(
"Error - I2C data was not set to %X.\n", data);
3517 for (i = 0; i < 9; i++) {
static s32 e1000_get_cfg_done_82575(struct e1000_hw *hw)
static s32 e1000_set_pcie_completion_timeout(struct e1000_hw *hw)
static s32 e1000_valid_led_default_82575(struct e1000_hw *hw, u16 *data)
s32 e1000_init_nvm_params_82575(struct e1000_hw *hw)
static s32 e1000_set_d0_lplu_state_82580(struct e1000_hw *hw, bool active)
static bool e1000_sgmii_active_82575(struct e1000_hw *hw)
static s32 e1000_read_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, u16 *data)
static s32 __e1000_access_emi_reg(struct e1000_hw *hw, u16 address, u16 *data, bool read)
static void e1000_i2c_stop(struct e1000_hw *hw)
static s32 e1000_reset_hw_82580(struct e1000_hw *hw)
void e1000_i2c_bus_clear(struct e1000_hw *hw)
void e1000_vmdq_set_loopback_pf(struct e1000_hw *hw, bool enable)
static s32 e1000_get_i2c_ack(struct e1000_hw *hw)
static s32 e1000_validate_nvm_checksum_i350(struct e1000_hw *hw)
u16 e1000_rxpbs_adjust_82580(u32 data)
s32 e1000_read_emi_reg(struct e1000_hw *hw, u16 addr, u16 *data)
static void e1000_power_up_serdes_link_82575(struct e1000_hw *hw)
#define E1000_82580_RXPBS_TABLE_SIZE
static s32 e1000_validate_nvm_checksum_with_offset(struct e1000_hw *hw, u16 offset)
static void e1000_clear_hw_cntrs_82575(struct e1000_hw *hw)
void e1000_init_function_pointers_82575(struct e1000_hw *hw)
static const u16 e1000_82580_rxpbs_table[]
static void e1000_i2c_start(struct e1000_hw *hw)
s32 e1000_set_eee_i350(struct e1000_hw *hw, bool adv1G, bool adv100M)
static void e1000_shutdown_serdes_link_82575(struct e1000_hw *hw)
static bool e1000_get_i2c_data(u32 *i2cctl)
static void e1000_release_nvm_82575(struct e1000_hw *hw)
s32 e1000_reset_init_script_82575(struct e1000_hw *hw)
static void e1000_clock_in_i2c_bit(struct e1000_hw *hw, bool *data)
void e1000_vmdq_set_anti_spoofing_pf(struct e1000_hw *hw, bool enable, int pf)
static s32 e1000_init_mac_params_82575(struct e1000_hw *hw)
static s32 e1000_set_d0_lplu_state_82575(struct e1000_hw *hw, bool active)
static s32 e1000_update_nvm_checksum_82580(struct e1000_hw *hw)
static void e1000_clear_vfta_i350(struct e1000_hw *hw)
static void e1000_lower_i2c_clk(struct e1000_hw *hw, u32 *i2cctl)
static s32 e1000_phy_hw_reset_sgmii_82575(struct e1000_hw *hw)
static s32 e1000_write_phy_reg_82580(struct e1000_hw *hw, u32 offset, u16 data)
static s32 e1000_write_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, u16 data)
static s32 e1000_reset_hw_82575(struct e1000_hw *hw)
static s32 e1000_setup_copper_link_82575(struct e1000_hw *hw)
void e1000_vmdq_set_replication_pf(struct e1000_hw *hw, bool enable)
s32 e1000_initialize_M88E1512_phy(struct e1000_hw *hw)
s32 e1000_set_eee_i354(struct e1000_hw *hw, bool adv1G, bool adv100M)
static s32 e1000_check_for_link_82575(struct e1000_hw *hw)
void e1000_write_vfta_i350(struct e1000_hw *hw, u32 offset, u32 value)
static s32 e1000_get_link_up_info_82575(struct e1000_hw *hw, u16 *speed, u16 *duplex)
static s32 e1000_update_nvm_checksum_i350(struct e1000_hw *hw)
static s32 e1000_clock_out_i2c_bit(struct e1000_hw *hw, bool data)
s32 e1000_read_i2c_byte_generic(struct e1000_hw *hw, u8 byte_offset, u8 dev_addr, u8 *data)
static s32 e1000_setup_serdes_link_82575(struct e1000_hw *hw)
s32 e1000_initialize_M88E1543_phy(struct e1000_hw *hw)
static s32 e1000_init_phy_params_82575(struct e1000_hw *hw)
static s32 e1000_set_sfp_media_type_82575(struct e1000_hw *hw)
static s32 e1000_read_phy_reg_82580(struct e1000_hw *hw, u32 offset, u16 *data)
static s32 e1000_validate_nvm_checksum_82580(struct e1000_hw *hw)
s32 e1000_write_i2c_byte_generic(struct e1000_hw *hw, u8 byte_offset, u8 dev_addr, u8 data)
static s32 e1000_get_phy_id_82575(struct e1000_hw *hw)
s32 e1000_get_eee_status_i354(struct e1000_hw *hw, bool *status)
static s32 e1000_set_i2c_data(struct e1000_hw *hw, u32 *i2cctl, bool data)
static s32 e1000_acquire_nvm_82575(struct e1000_hw *hw)
s32 e1000_set_i2c_bb(struct e1000_hw *hw)
static s32 e1000_check_for_link_media_swap(struct e1000_hw *hw)
static s32 e1000_clock_out_i2c_byte(struct e1000_hw *hw, u8 data)
static void e1000_raise_i2c_clk(struct e1000_hw *hw, u32 *i2cctl)
static s32 e1000_set_d3_lplu_state_82580(struct e1000_hw *hw, bool active)
static s32 e1000_reset_mdicnfg_82580(struct e1000_hw *hw)
static s32 e1000_init_hw_82575(struct e1000_hw *hw)
static s32 e1000_get_pcs_speed_and_duplex_82575(struct e1000_hw *hw, u16 *speed, u16 *duplex)
static s32 e1000_get_media_type_82575(struct e1000_hw *hw)
static void e1000_config_collision_dist_82575(struct e1000_hw *hw)
static bool e1000_sgmii_uses_mdio_82575(struct e1000_hw *hw)
static s32 e1000_read_mac_addr_82575(struct e1000_hw *hw)
static s32 e1000_update_nvm_checksum_with_offset(struct e1000_hw *hw, u16 offset)
static void e1000_clock_in_i2c_byte(struct e1000_hw *hw, u8 *data)
#define E1000_RAR_ENTRIES_82575
#define E1000_DTXSWC_MAC_SPOOF_MASK
#define E1000_RAR_ENTRIES_82576
#define ID_LED_DEFAULT_82575_SERDES
#define E1000_DTXSWC_VMDQ_LOOPBACK_EN
#define E1000_I2C_T_SU_DATA
#define E1000_STAT_DEV_RST_SET
#define E1000_DTXSWC_VLAN_SPOOF_MASK
#define E1000_EEPROM_PCS_AUTONEG_DISABLE_BIT
#define E1000_SW_SYNCH_MB
#define E1000_TCTL_EXT_COLD_SHIFT
#define E1000_RAR_ENTRIES_82580
#define E1000_I2C_T_SU_STO
#define E1000_RAR_ENTRIES_I350
#define E1000_VT_CTL_VM_REPL_EN
#define E1000_I2C_T_HD_STA
#define E1000_I2C_T_SU_STA
s32 e1000_init_hw_base(struct e1000_hw *hw)
s32 e1000_acquire_phy_base(struct e1000_hw *hw)
void e1000_power_down_phy_copper_base(struct e1000_hw *hw)
void e1000_release_phy_base(struct e1000_hw *hw)
#define ID_LED_RESERVED_0000
#define E1000_EEER_RX_LPI_EN
#define E1000_EEE_ADV_1000_SUPPORTED
#define E1000_TXCW_ASM_DIR
#define E1000_M88E1112_STATUS
#define PCIE_DEVICE_CONTROL2
#define E1000_M88E1512_CFG_REG_3
#define E1000_PCS_LSTS_DUPLEX_FULL
#define E1000_GCR_CMPL_TMOUT_10ms
#define E1000_EEER_LPI_FC
#define E1000_I2CCMD_SFP_DATA_ADDR(a)
#define E1000_M88E1543_EEE_CTRL_1
#define E1000_EEE_ADV_100_SUPPORTED
#define E1000_CTRL_EXT_LINK_MODE_GMII
#define E1000_NVM_CFG_DONE_PORT_3
#define E1000_PCS_STATUS_ADDR_I354
#define E1000_CTRL_DEV_RST
#define E1000_MDIC_PHY_MASK
#define E1000_PCS_LCTL_FSD
#define E1000_PCS_LSTS_LINK_OK
#define E1000_EEE_ADV_ADDR_I354
#define E1000_PCS_LCTL_AN_TIMEOUT
#define E1000_CTRL_EXT_LINK_MODE_SGMII
#define E1000_M88E1112_AUTO_COPPER_SGMII
#define M88E1111_I_PHY_ID
#define E1000_M88E1543_FIBER_CTRL
#define E1000_CTRL_FRCSPD
#define E1000_MDICNFG_PHY_MASK
#define NVM_WORD_SIZE_BASE_SHIFT
#define E1000_MDICNFG_COM_MDIO
#define E1000_M88E1112_MAC_CTRL_1
#define E1000_EEE_ADV_DEV_I354
#define E1000_PCS_STATUS_DEV_I354
#define E1000_M88E1112_PAGE_ADDR
#define E1000_ALL_SPEED_DUPLEX
#define E1000_MDICNFG_PHY_SHIFT
#define E1000_MAX_SGMII_PHY_REG_ADDR
#define E1000_STATUS_2P5_SKU_OVER
#define E1000_EEE_SU_LPI_CLK_STP
#define E1000_GCR_CAP_VER2
#define M88E1112_E_PHY_ID
#define E1000_NVM_CFG_DONE_PORT_2
#define PCIE_DEVICE_CONTROL2_16ms
#define E1000_ALL_10_SPEED
#define NVM_WORD24_COM_MDIO
#define E1000_EECD_BLOCKED
#define M88E1543_E_PHY_ID
#define E1000_EECD_SIZE_EX_SHIFT
#define E1000_M88E1112_MAC_CTRL_1_MODE_MASK
#define E1000_PCS_LSTS_SPEED_100
#define E1000_EECD_SIZE_EX_MASK
#define E1000_EECD_TIMEOUT
#define E1000_VLAN_FILTER_TBL_SIZE
#define E1000_IPCNFG_EEE_1G_AN
#define E1000_PCS_CFG_PCS_EN
#define E1000_MEDIA_PORT_OTHER
#define E1000_CTRL_EXT_LINK_MODE_1000BASE_KX
#define E1000_SWFW_PHY0_SM
#define E1000_CTRL_EXT_LINK_MODE_MASK
#define ID_LED_RESERVED_FFFF
#define E1000_STATUS_2P5_SKU
#define NVM_COMPATIBILITY_BIT_MASK
#define E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES
#define E1000_M88E1512_MODE
#define E1000_M88E1512_CFG_REG_2
#define E1000_PCS_LCTL_AN_RESTART
#define NVM_82580_LAN_FUNC_OFFSET(a)
#define E1000_PCS_LCTL_FSV_1000
#define E1000_EEER_TX_LPI_EN
#define E1000_M88E1543_EEE_CTRL_1_MS
#define AUTONEG_ADVERTISE_SPEED_DEFAULT
#define M88E1340M_E_PHY_ID
#define E1000_NVM_CFG_DONE_PORT_0
#define E1000_PCS_LSTS_SPEED_1000
#define E1000_M88E1112_STATUS_LINK
#define E1000_CTRL_SWDPIN1
#define E1000_ERR_SWFW_SYNC
#define E1000_CTRL_EXT_SDP3_DATA
#define NVM_COMPATIBILITY_REG_3
#define E1000_SWFW_EEP_SM
#define E1000_GCR_CMPL_TMOUT_MASK
#define E1000_ALL_NOT_GIG
#define E1000_CTRL_I2C_ENA
#define E1000_EECD_ADDR_BITS
#define E1000_NVM_CFG_DONE_PORT_1
#define E1000_PCS_LCTL_FORCE_LINK
#define E1000_EECD_ERROR_CLR
#define E1000_PCS_STATUS_TX_LPI_RCVD
#define E1000_IPCNFG_EEE_100M_AN
#define E1000_M88E1543_PAGE_ADDR
#define E1000_M88E1512_CFG_REG_1
#define E1000_M88E1112_MAC_CTRL_1_MODE_SHIFT
#define E1000_PCS_LCTL_FORCE_FCTRL
#define E1000_PCS_LCTL_FLV_LINK_UP
#define E1000_CTRL_SWDPIN0
#define E1000_M88E1112_AUTO_COPPER_BASEX
#define E1000_MDIC_PHY_SHIFT
#define E1000_CTRL_FRCDPX
#define NVM_WORD24_EXT_MDIO
#define E1000_SCTL_DISABLE_SERDES_LOOPBACK
#define E1000_COLLISION_DISTANCE
#define IGP04E1000_E_PHY_ID
#define E1000_PCS_LCTL_FDV_FULL
#define E1000_PCS_STATUS_RX_LPI_RCVD
#define NVM_INIT_CONTROL3_PORT_A
#define E1000_MDICNFG_EXT_MDIO
#define E1000_PCS_LCTL_AN_ENABLE
#define E1000_CTRL_SPD_1000
#define M88E1512_E_PHY_ID
#define E1000_MEDIA_PORT_COPPER
#define NVM_ID_LED_SETTINGS
#define IGP03E1000_E_PHY_ID
@ e1000_nvm_override_spi_large
@ e1000_nvm_override_spi_small
#define E1000_DEV_ID_DH89XXCC_SGMII
s32 e1000_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value)
s32 e1000_write_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value)
@ e1000_media_type_unknown
@ e1000_media_type_internal_serdes
@ e1000_media_type_copper
s32 e1000_init_hw_i210(struct e1000_hw *hw)
s32 e1000_get_bus_info_pcie_generic(struct e1000_hw *hw)
s32 e1000_check_for_copper_link_generic(struct e1000_hw *hw)
void e1000_init_mac_ops_generic(struct e1000_hw *hw)
s32 e1000_validate_mdi_setting_crossover_generic(struct e1000_hw E1000_UNUSEDARG *hw)
s32 e1000_id_led_init_generic(struct e1000_hw *hw)
s32 e1000_acquire_swfw_sync(struct e1000_hw *hw, u16 mask)
s32 e1000_force_mac_fc_generic(struct e1000_hw *hw)
s32 e1000_led_on_generic(struct e1000_hw *hw)
s32 e1000_disable_pcie_master_generic(struct e1000_hw *hw)
s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
s32 e1000_setup_link_generic(struct e1000_hw *hw)
void e1000_clear_hw_cntrs_base_generic(struct e1000_hw *hw)
void e1000_release_swfw_sync(struct e1000_hw *hw, u16 mask)
s32 e1000_cleanup_led_generic(struct e1000_hw *hw)
s32 e1000_led_off_generic(struct e1000_hw *hw)
void e1000_update_mc_addr_list_generic(struct e1000_hw *hw, u8 *mc_addr_list, u32 mc_addr_count)
s32 e1000_blink_led_generic(struct e1000_hw *hw)
void e1000_clear_vfta_generic(struct e1000_hw *hw)
s32 e1000_get_speed_and_duplex_copper_generic(struct e1000_hw *hw, u16 *speed, u16 *duplex)
void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value)
s32 e1000_setup_led_generic(struct e1000_hw *hw)
s32 e1000_config_fc_after_link_up_generic(struct e1000_hw *hw)
s32 e1000_write_8bit_ctrl_reg_generic(struct e1000_hw *hw, u32 reg, u32 offset, u8 data)
s32 e1000_get_auto_rd_done_generic(struct e1000_hw *hw)
bool e1000_enable_mng_pass_thru(struct e1000_hw *hw)
#define E1000_FWSM_MODE_MASK
s32 e1000_init_mbx_params_pf(struct e1000_hw *hw)
s32 e1000_update_nvm_checksum_generic(struct e1000_hw *hw)
s32 e1000_read_mac_addr_generic(struct e1000_hw *hw)
s32 e1000_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
s32 e1000_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
s32 e1000_read_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
void e1000_release_nvm_generic(struct e1000_hw *hw)
s32 e1000_acquire_nvm_generic(struct e1000_hw *hw)
s32 e1000_validate_nvm_checksum_generic(struct e1000_hw *hw)
#define E1000_WRITE_REG_ARRAY(hw, reg, index, value)
#define E1000_WRITE_FLUSH(a)
#define E1000_WRITE_REG(hw, reg, value)
#define E1000_READ_REG(hw, reg)
s32 e1000_phy_force_speed_duplex_igp(struct e1000_hw *hw)
s32 e1000_check_reset_block_generic(struct e1000_hw *hw)
s32 e1000_get_cable_length_m88(struct e1000_hw *hw)
s32 e1000_write_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, u16 data)
s32 e1000_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data)
s32 e1000_read_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_read_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, u16 *data)
s32 e1000_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_get_cable_length_igp_2(struct e1000_hw *hw)
s32 e1000_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_get_phy_id(struct e1000_hw *hw)
s32 e1000_get_phy_info_82577(struct e1000_hw *hw)
s32 e1000_get_phy_info_m88(struct e1000_hw *hw)
s32 e1000_get_phy_info_igp(struct e1000_hw *hw)
s32 e1000_check_polarity_igp(struct e1000_hw *hw)
s32 e1000_phy_force_speed_duplex_82577(struct e1000_hw *hw)
s32 e1000_write_phy_reg_gs40g(struct e1000_hw *hw, u32 offset, u16 data)
void e1000_power_up_phy_copper(struct e1000_hw *hw)
s32 e1000_write_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_get_cable_length_m88_gen2(struct e1000_hw *hw)
s32 e1000_phy_sw_reset_generic(struct e1000_hw *hw)
s32 e1000_phy_force_speed_duplex_m88(struct e1000_hw *hw)
s32 e1000_read_phy_reg_gs40g(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_copper_link_setup_m88_gen2(struct e1000_hw *hw)
s32 e1000_read_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 *data)
s32 e1000_check_polarity_m88(struct e1000_hw *hw)
s32 e1000_phy_hw_reset_generic(struct e1000_hw *hw)
s32 e1000_copper_link_setup_82577(struct e1000_hw *hw)
s32 e1000_set_d3_lplu_state_generic(struct e1000_hw *hw, bool active)
s32 e1000_check_polarity_82577(struct e1000_hw *hw)
s32 e1000_copper_link_setup_m88(struct e1000_hw *hw)
s32 e1000_get_cable_length_82577(struct e1000_hw *hw)
s32 e1000_copper_link_setup_igp(struct e1000_hw *hw)
s32 e1000_write_phy_reg_igp(struct e1000_hw *hw, u32 offset, u16 data)
s32 e1000_phy_init_script_igp3(struct e1000_hw *hw)
s32 e1000_setup_copper_link_generic(struct e1000_hw *hw)
#define E1000_SFF_IDENTIFIER_SFP
#define E1000_SFF_IDENTIFIER_SFF
#define IGP01E1000_PHY_PORT_CONFIG
#define E1000_SFF_IDENTIFIER_OFFSET
#define E1000_SFF_ETH_FLAGS_OFFSET
#define E1000_82580_PM_D0_LPLU
#define E1000_82580_PHY_POWER_MGMT
#define IGP02E1000_PM_D0_LPLU
#define E1000_82580_PM_SPD
#define IGP02E1000_PHY_POWER_MGMT
#define E1000_82580_PM_D3_LPLU
#define IGP01E1000_PSCFR_SMART_SPEED
#define E1000_I2C_CLK_OUT
#define E1000_I2C_DATA_OUT
#define E1000_I2C_DATA_OE_N
#define E1000_I2C_CLK_OE_N
#define E1000_I2C_DATA_IN
bool clear_semaphore_once
struct sfp_e1000_flags eth_flags
enum e1000_fc_mode requested_mode
union e1000_hw::@46 dev_spec
struct e1000_bus_info bus
struct e1000_mac_info mac
struct e1000_dev_spec_82575 _82575
struct e1000_nvm_info nvm
struct e1000_mbx_info mbx
struct e1000_phy_info phy
bool asf_firmware_present
struct e1000_mac_operations ops
void(* release_swfw_sync)(struct e1000_hw *, u16)
s32(* setup_led)(struct e1000_hw *)
s32(* id_led_init)(struct e1000_hw *)
s32(* get_link_up_info)(struct e1000_hw *, u16 *, u16 *)
s32(* setup_physical_interface)(struct e1000_hw *)
s32(* validate_mdi_setting)(struct e1000_hw *)
s32(* check_for_link)(struct e1000_hw *)
void(* config_collision_dist)(struct e1000_hw *)
void(* clear_vfta)(struct e1000_hw *)
s32(* blink_led)(struct e1000_hw *)
s32(* reset_hw)(struct e1000_hw *)
s32(* led_on)(struct e1000_hw *)
s32(* read_mac_addr)(struct e1000_hw *)
void(* write_vfta)(struct e1000_hw *, u32, u32)
s32(* init_hw)(struct e1000_hw *)
s32(* setup_link)(struct e1000_hw *)
void(* power_up_serdes)(struct e1000_hw *)
s32(* cleanup_led)(struct e1000_hw *)
void(* clear_hw_cntrs)(struct e1000_hw *)
void(* set_lan_id)(struct e1000_hw *)
s32(* acquire_swfw_sync)(struct e1000_hw *, u16)
void(* update_mc_addr_list)(struct e1000_hw *, u8 *, u32)
s32(* led_off)(struct e1000_hw *)
s32(* get_bus_info)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
void(* shutdown_serdes)(struct e1000_hw *)
struct e1000_mbx_operations ops
s32(* init_params)(struct e1000_hw *hw)
struct e1000_nvm_operations ops
enum e1000_nvm_override override
void(* release)(struct e1000_hw *)
s32(* init_params)(struct e1000_hw *)
s32(* write)(struct e1000_hw *, u16, u16, u16 *)
s32(* validate)(struct e1000_hw *)
s32(* update)(struct e1000_hw *)
s32(* read)(struct e1000_hw *, u16, u16, u16 *)
s32(* acquire)(struct e1000_hw *)
s32(* valid_led_default)(struct e1000_hw *, u16 *)
enum e1000_media_type media_type
struct e1000_phy_operations ops
enum e1000_smart_speed smart_speed
s32(* get_cfg_done)(struct e1000_hw *hw)
void(* power_up)(struct e1000_hw *)
s32(* reset)(struct e1000_hw *)
s32(* read_i2c_byte)(struct e1000_hw *, u8, u8, u8 *)
s32(* init_params)(struct e1000_hw *)
s32(* read_reg)(struct e1000_hw *, u32, u16 *)
s32(* get_info)(struct e1000_hw *)
void(* release)(struct e1000_hw *)
s32(* set_d3_lplu_state)(struct e1000_hw *, bool)
s32(* force_speed_duplex)(struct e1000_hw *)
s32(* write_i2c_byte)(struct e1000_hw *, u8, u8, u8)
s32(* get_cable_length)(struct e1000_hw *)
s32(* check_reset_block)(struct e1000_hw *)
s32(* acquire)(struct e1000_hw *)
s32(* set_d0_lplu_state)(struct e1000_hw *, bool)
s32(* write_reg)(struct e1000_hw *, u32, u16)
s32(* commit)(struct e1000_hw *)
void(* power_down)(struct e1000_hw *)
s32(* check_polarity)(struct e1000_hw *)