igb: Implement support to power sfp cage and turn on I2C
authorAkeem G. Abodunrin <akeem.g.abodunrin@intel.com>
Tue, 29 Jan 2013 10:15:26 +0000 (10:15 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 18 Apr 2013 23:39:52 +0000 (16:39 -0700)
Based on original patch from AurĂ©lien Guillaume <footplus@gmail.com>
This patch adds support to turn on I2C, with sfp cage powered.

CC: Aurélien Guillaume <footplus@gmail.com>
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igb/e1000_82575.c

index 12b1d84..856364a 100644 (file)
@@ -1420,9 +1420,10 @@ static s32 igb_setup_serdes_link_82575(struct e1000_hw *hw)
         */
        wr32(E1000_SCTL, E1000_SCTL_DISABLE_SERDES_LOOPBACK);
 
-       /* power on the sfp cage if present */
+       /* power on the sfp cage if present and turn on I2C */
        ctrl_ext = rd32(E1000_CTRL_EXT);
        ctrl_ext &= ~E1000_CTRL_EXT_SDP3_DATA;
+       ctrl_ext |= E1000_CTRL_I2C_ENA;
        wr32(E1000_CTRL_EXT, ctrl_ext);
 
        ctrl_reg = rd32(E1000_CTRL);