diff options
Diffstat (limited to 'drivers/net/ixgb/ixgb_ee.c')
| -rw-r--r-- | drivers/net/ixgb/ixgb_ee.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/drivers/net/ixgb/ixgb_ee.c b/drivers/net/ixgb/ixgb_ee.c index c982ab9f9005..38b362b67857 100644 --- a/drivers/net/ixgb/ixgb_ee.c +++ b/drivers/net/ixgb/ixgb_ee.c @@ -57,6 +57,7 @@ ixgb_raise_clock(struct ixgb_hw *hw,  	 */  	*eecd_reg = *eecd_reg | IXGB_EECD_SK;  	IXGB_WRITE_REG(hw, EECD, *eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  } @@ -75,6 +76,7 @@ ixgb_lower_clock(struct ixgb_hw *hw,  	 */  	*eecd_reg = *eecd_reg & ~IXGB_EECD_SK;  	IXGB_WRITE_REG(hw, EECD, *eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  } @@ -112,6 +114,7 @@ ixgb_shift_out_bits(struct ixgb_hw *hw,  			eecd_reg |= IXGB_EECD_DI;  		IXGB_WRITE_REG(hw, EECD, eecd_reg); +		IXGB_WRITE_FLUSH(hw);  		udelay(50); @@ -206,21 +209,25 @@ ixgb_standby_eeprom(struct ixgb_hw *hw)  	/*  Deselect EEPROM  */  	eecd_reg &= ~(IXGB_EECD_CS | IXGB_EECD_SK);  	IXGB_WRITE_REG(hw, EECD, eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  	/*  Clock high  */  	eecd_reg |= IXGB_EECD_SK;  	IXGB_WRITE_REG(hw, EECD, eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  	/*  Select EEPROM  */  	eecd_reg |= IXGB_EECD_CS;  	IXGB_WRITE_REG(hw, EECD, eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  	/*  Clock low  */  	eecd_reg &= ~IXGB_EECD_SK;  	IXGB_WRITE_REG(hw, EECD, eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  } @@ -239,11 +246,13 @@ ixgb_clock_eeprom(struct ixgb_hw *hw)  	/*  Rising edge of clock  */  	eecd_reg |= IXGB_EECD_SK;  	IXGB_WRITE_REG(hw, EECD, eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  	/*  Falling edge of clock  */  	eecd_reg &= ~IXGB_EECD_SK;  	IXGB_WRITE_REG(hw, EECD, eecd_reg); +	IXGB_WRITE_FLUSH(hw);  	udelay(50);  } | 
