Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / net / ethernet / intel / igb / e1000_mac.c
index afbab053269b0051dea18129411007229ae1e915..2559d70a2321b717b05b167a2c1c3a5b4f9f44a6 100644 (file)
@@ -214,7 +214,7 @@ s32 igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add)
                else
                        vfta &= ~mask;
        }
-       if (hw->mac.type == e1000_i350)
+       if ((hw->mac.type == e1000_i350) || (hw->mac.type == e1000_i354))
                igb_write_vfta_i350(hw, index, vfta);
        else
                igb_write_vfta(hw, index, vfta);
@@ -1171,6 +1171,17 @@ s32 igb_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed,
                hw_dbg("Half Duplex\n");
        }
 
+       /* Check if it is an I354 2.5Gb backplane connection. */
+       if (hw->mac.type == e1000_i354) {
+               if ((status & E1000_STATUS_2P5_SKU) &&
+                   !(status & E1000_STATUS_2P5_SKU_OVER)) {
+                       *speed = SPEED_2500;
+                       *duplex = FULL_DUPLEX;
+                       hw_dbg("2500 Mbs, ");
+                       hw_dbg("Full Duplex\n");
+               }
+       }
+
        return 0;
 }