mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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>
This commit is contained in:
parent
ef3a009297
commit
53b87ce37e
4 changed files with 19 additions and 2 deletions
|
@ -483,6 +483,8 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
|
||||||
case E1000_DEV_ID_I210_FIBER:
|
case E1000_DEV_ID_I210_FIBER:
|
||||||
case E1000_DEV_ID_I210_SERDES:
|
case E1000_DEV_ID_I210_SERDES:
|
||||||
case E1000_DEV_ID_I210_SGMII:
|
case E1000_DEV_ID_I210_SGMII:
|
||||||
|
case E1000_DEV_ID_I210_COPPER_FLASHLESS:
|
||||||
|
case E1000_DEV_ID_I210_SERDES_FLASHLESS:
|
||||||
mac->type = e1000_i210;
|
mac->type = e1000_i210;
|
||||||
break;
|
break;
|
||||||
case E1000_DEV_ID_I211_COPPER:
|
case E1000_DEV_ID_I211_COPPER:
|
||||||
|
|
|
@ -67,6 +67,8 @@ struct e1000_hw;
|
||||||
#define E1000_DEV_ID_I210_FIBER 0x1536
|
#define E1000_DEV_ID_I210_FIBER 0x1536
|
||||||
#define E1000_DEV_ID_I210_SERDES 0x1537
|
#define E1000_DEV_ID_I210_SERDES 0x1537
|
||||||
#define E1000_DEV_ID_I210_SGMII 0x1538
|
#define E1000_DEV_ID_I210_SGMII 0x1538
|
||||||
|
#define E1000_DEV_ID_I210_COPPER_FLASHLESS 0x157B
|
||||||
|
#define E1000_DEV_ID_I210_SERDES_FLASHLESS 0x157C
|
||||||
#define E1000_DEV_ID_I211_COPPER 0x1539
|
#define E1000_DEV_ID_I211_COPPER 0x1539
|
||||||
#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40
|
#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40
|
||||||
#define E1000_DEV_ID_I354_SGMII 0x1F41
|
#define E1000_DEV_ID_I354_SGMII 0x1F41
|
||||||
|
|
|
@ -1335,12 +1335,23 @@ static int igb_reg_test(struct igb_adapter *adapter, u64 *data)
|
||||||
|
|
||||||
static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data)
|
static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data)
|
||||||
{
|
{
|
||||||
|
struct e1000_hw *hw = &adapter->hw;
|
||||||
|
|
||||||
*data = 0;
|
*data = 0;
|
||||||
|
|
||||||
/* Validate eeprom on all parts but i211 */
|
/* Validate eeprom on all parts but flashless */
|
||||||
if (adapter->hw.mac.type != e1000_i211) {
|
switch (hw->mac.type) {
|
||||||
|
case e1000_i210:
|
||||||
|
case e1000_i211:
|
||||||
|
if (igb_get_flash_presence_i210(hw)) {
|
||||||
|
if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0)
|
||||||
|
*data = 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0)
|
if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0)
|
||||||
*data = 2;
|
*data = 2;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return *data;
|
return *data;
|
||||||
|
|
|
@ -85,6 +85,8 @@ static DEFINE_PCI_DEVICE_TABLE(igb_pci_tbl) = {
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_FIBER), board_82575 },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_FIBER), board_82575 },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES), board_82575 },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES), board_82575 },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SGMII), board_82575 },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SGMII), board_82575 },
|
||||||
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_COPPER_FLASHLESS), board_82575 },
|
||||||
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES_FLASHLESS), board_82575 },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_COPPER), board_82575 },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_COPPER), board_82575 },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_FIBER), board_82575 },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_FIBER), board_82575 },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_SERDES), board_82575 },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_SERDES), board_82575 },
|
||||||
|
|
Loading…
Add table
Reference in a new issue