ixgbe: Fix incorrect logic for fixed fiber eeprom write
authorDon Skidmore <donald.c.skidmore@intel.com>
Thu, 16 Jan 2014 10:30:10 +0000 (02:30 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Jan 2014 23:34:25 +0000 (15:34 -0800)
In this code we wanted to set the bit in IXGBE_SFF_SOFT_RS_SELECT_MASK to
the value in rs.  So we really needed a logical or rather than an and, this
patch makes that change.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c

index 007a0083a636785fcb473e87aafdc608b213ba51..edda6814108c9d120fe994740edfcc04f710943d 100644 (file)
@@ -626,7 +626,7 @@ static void ixgbe_set_fiber_fixed_speed(struct ixgbe_hw *hw,
                goto out;
        }
 
-       eeprom_data = (eeprom_data & ~IXGBE_SFF_SOFT_RS_SELECT_MASK) & rs;
+       eeprom_data = (eeprom_data & ~IXGBE_SFF_SOFT_RS_SELECT_MASK) | rs;
 
        status = hw->phy.ops.write_i2c_byte(hw, IXGBE_SFF_SFF_8472_OSCB,
                                            IXGBE_I2C_EEPROM_DEV_ADDR2,