aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/igb
diff options
context:
space:
mode:
authorCarolyn Wyborny <carolyn.wyborny@intel.com>2013-07-16 15:18:36 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-08-22 05:26:06 -0400
commit53b87ce37e19939c80aaeaa5e8702b521597ce3e (patch)
tree3523c63f5143d2ba67959c9a3d493c2076e9773b /drivers/net/ethernet/intel/igb
parentef3a009297c50876980f21060aee61e8b516a990 (diff)
igb: Add device support for flashless SKU of i210 device
This patch adds the specific device id support for versions of i210 that do not have flash installed. Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/igb')
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_82575.c2
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_hw.h2
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ethtool.c15
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c2
4 files changed, 19 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c
index 8d79face0717..d398fad6eedc 100644
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
@@ -483,6 +483,8 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
483 case E1000_DEV_ID_I210_FIBER: 483 case E1000_DEV_ID_I210_FIBER:
484 case E1000_DEV_ID_I210_SERDES: 484 case E1000_DEV_ID_I210_SERDES:
485 case E1000_DEV_ID_I210_SGMII: 485 case E1000_DEV_ID_I210_SGMII:
486 case E1000_DEV_ID_I210_COPPER_FLASHLESS:
487 case E1000_DEV_ID_I210_SERDES_FLASHLESS:
486 mac->type = e1000_i210; 488 mac->type = e1000_i210;
487 break; 489 break;
488 case E1000_DEV_ID_I211_COPPER: 490 case E1000_DEV_ID_I211_COPPER:
diff --git a/drivers/net/ethernet/intel/igb/e1000_hw.h b/drivers/net/ethernet/intel/igb/e1000_hw.h
index 4329e8c17b33..37a9c06a6c68 100644
--- a/drivers/net/ethernet/intel/igb/e1000_hw.h
+++ b/drivers/net/ethernet/intel/igb/e1000_hw.h
@@ -67,6 +67,8 @@ struct e1000_hw;
67#define E1000_DEV_ID_I210_FIBER 0x1536 67#define E1000_DEV_ID_I210_FIBER 0x1536
68#define E1000_DEV_ID_I210_SERDES 0x1537 68#define E1000_DEV_ID_I210_SERDES 0x1537
69#define E1000_DEV_ID_I210_SGMII 0x1538 69#define E1000_DEV_ID_I210_SGMII 0x1538
70#define E1000_DEV_ID_I210_COPPER_FLASHLESS 0x157B
71#define E1000_DEV_ID_I210_SERDES_FLASHLESS 0x157C
70#define E1000_DEV_ID_I211_COPPER 0x1539 72#define E1000_DEV_ID_I211_COPPER 0x1539
71#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40 73#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40
72#define E1000_DEV_ID_I354_SGMII 0x1F41 74#define E1000_DEV_ID_I354_SGMII 0x1F41
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 6d861a5c729a..03137e21551d 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -1335,12 +1335,23 @@ static int igb_reg_test(struct igb_adapter *adapter, u64 *data)
1335 1335
1336static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data) 1336static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data)
1337{ 1337{
1338 struct e1000_hw *hw = &adapter->hw;
1339
1338 *data = 0; 1340 *data = 0;
1339 1341
1340 /* Validate eeprom on all parts but i211 */ 1342 /* Validate eeprom on all parts but flashless */
1341 if (adapter->hw.mac.type != e1000_i211) { 1343 switch (hw->mac.type) {
1344 case e1000_i210:
1345 case e1000_i211:
1346 if (igb_get_flash_presence_i210(hw)) {
1347 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0)
1348 *data = 2;
1349 }
1350 break;
1351 default:
1342 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) 1352 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0)
1343 *data = 2; 1353 *data = 2;
1354 break;
1344 } 1355 }
1345 1356
1346 return *data; 1357 return *data;
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 387864db7259..a53c77b5aa8d 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -85,6 +85,8 @@ static DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
85 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_FIBER), board_82575 }, 85 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_FIBER), board_82575 },
86 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES), board_82575 }, 86 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES), board_82575 },
87 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SGMII), board_82575 }, 87 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SGMII), board_82575 },
88 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_COPPER_FLASHLESS), board_82575 },
89 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES_FLASHLESS), board_82575 },
88 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_COPPER), board_82575 }, 90 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_COPPER), board_82575 },
89 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_FIBER), board_82575 }, 91 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_FIBER), board_82575 },
90 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_SERDES), board_82575 }, 92 { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_SERDES), board_82575 },