ixgbe/base: set SFP probing retries
Check if SFP is detected or not. Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com> Acked-by: Jijiang Liu <jijiang.liu@intel.com>
This commit is contained in:
parent
e0ba4e7760
commit
5143c92de8
@ -1873,6 +1873,21 @@ s32 ixgbe_write_i2c_eeprom_generic(struct ixgbe_hw *hw, u8 byte_offset,
|
|||||||
eeprom_data);
|
eeprom_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ixgbe_is_sfp_probe - Returns true if SFP is being detected
|
||||||
|
* @hw: pointer to hardware structure
|
||||||
|
* @offset: eeprom offset to be read
|
||||||
|
* @addr: I2C address to be read
|
||||||
|
*/
|
||||||
|
STATIC bool ixgbe_is_sfp_probe(struct ixgbe_hw *hw, u8 offset, u8 addr)
|
||||||
|
{
|
||||||
|
if (addr == IXGBE_I2C_EEPROM_DEV_ADDR &&
|
||||||
|
offset == IXGBE_SFF_IDENTIFIER &&
|
||||||
|
hw->phy.sfp_type == ixgbe_sfp_type_not_present)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_read_i2c_byte_generic - Reads 8 bit word over I2C
|
* ixgbe_read_i2c_byte_generic - Reads 8 bit word over I2C
|
||||||
* @hw: pointer to hardware structure
|
* @hw: pointer to hardware structure
|
||||||
@ -1894,6 +1909,9 @@ s32 ixgbe_read_i2c_byte_generic(struct ixgbe_hw *hw, u8 byte_offset,
|
|||||||
|
|
||||||
DEBUGFUNC("ixgbe_read_i2c_byte_generic");
|
DEBUGFUNC("ixgbe_read_i2c_byte_generic");
|
||||||
|
|
||||||
|
if (ixgbe_is_sfp_probe(hw, byte_offset, dev_addr))
|
||||||
|
max_retry = IXGBE_SFP_DETECT_RETRIES;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (hw->mac.ops.acquire_swfw_sync(hw, swfw_mask))
|
if (hw->mac.ops.acquire_swfw_sync(hw, swfw_mask))
|
||||||
return IXGBE_ERR_SWFW_SYNC;
|
return IXGBE_ERR_SWFW_SYNC;
|
||||||
|
@ -114,6 +114,10 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#define IXGBE_I2C_T_SU_STO 4
|
#define IXGBE_I2C_T_SU_STO 4
|
||||||
#define IXGBE_I2C_T_BUF 5
|
#define IXGBE_I2C_T_BUF 5
|
||||||
|
|
||||||
|
#ifndef IXGBE_SFP_DETECT_RETRIES
|
||||||
|
#define IXGBE_SFP_DETECT_RETRIES 10
|
||||||
|
|
||||||
|
#endif /* IXGBE_SFP_DETECT_RETRIES */
|
||||||
#define IXGBE_TN_LASI_STATUS_REG 0x9005
|
#define IXGBE_TN_LASI_STATUS_REG 0x9005
|
||||||
#define IXGBE_TN_LASI_STATUS_TEMP_ALARM 0x0008
|
#define IXGBE_TN_LASI_STATUS_TEMP_ALARM 0x0008
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user