diff options
author | Carolyn Wyborny <carolyn.wyborny@intel.com> | 2013-07-16 15:18:36 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2013-08-22 05:26:06 -0400 |
commit | 53b87ce37e19939c80aaeaa5e8702b521597ce3e (patch) | |
tree | 3523c63f5143d2ba67959c9a3d493c2076e9773b /drivers | |
parent | ef3a009297c50876980f21060aee61e8b516a990 (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')
-rw-r--r-- | drivers/net/ethernet/intel/igb/e1000_82575.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/e1000_hw.h | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_ethtool.c | 15 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 2 |
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 | ||
1336 | static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data) | 1336 | static 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 }, |