ixgbe: add write flush in ixgbe_clock_out_i2c_byte()
authorEmil Tantilov <emil.s.tantilov@intel.com>
Fri, 4 Nov 2011 06:43:23 +0000 (06:43 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 3 Jan 2012 01:43:44 +0000 (17:43 -0800)
I2C access is timing critical. Always do a write flush after writing
to the I2CCTL register.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c

index 8b113e3..7cf1e1f 100644 (file)
@@ -1457,6 +1457,7 @@ static s32 ixgbe_clock_out_i2c_byte(struct ixgbe_hw *hw, u8 data)
        i2cctl = IXGBE_READ_REG(hw, IXGBE_I2CCTL);
        i2cctl |= IXGBE_I2C_DATA_OUT;
        IXGBE_WRITE_REG(hw, IXGBE_I2CCTL, i2cctl);
+       IXGBE_WRITE_FLUSH(hw);
 
        return status;
 }