e1000e: enable support for new device IDs
The device IDs 0x15a0 and 0x15a1 are new SKUs that contain the same MAC as I217 and same PHY as I218. The device IDs 0x15a2 and 0x15a3 are the same as existing I218 SKUs. Signed-off-by: Bruce Allan <bruce.w.allan@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
3ef672ab18
commit
91a3d82f38
|
@ -90,6 +90,10 @@ struct e1000_hw;
|
||||||
#define E1000_DEV_ID_PCH_LPT_I217_V 0x153B
|
#define E1000_DEV_ID_PCH_LPT_I217_V 0x153B
|
||||||
#define E1000_DEV_ID_PCH_LPTLP_I218_LM 0x155A
|
#define E1000_DEV_ID_PCH_LPTLP_I218_LM 0x155A
|
||||||
#define E1000_DEV_ID_PCH_LPTLP_I218_V 0x1559
|
#define E1000_DEV_ID_PCH_LPTLP_I218_V 0x1559
|
||||||
|
#define E1000_DEV_ID_PCH_I218_LM2 0x15A0
|
||||||
|
#define E1000_DEV_ID_PCH_I218_V2 0x15A1
|
||||||
|
#define E1000_DEV_ID_PCH_I218_LM3 0x15A2 /* Wildcat Point PCH */
|
||||||
|
#define E1000_DEV_ID_PCH_I218_V3 0x15A3 /* Wildcat Point PCH */
|
||||||
|
|
||||||
#define E1000_REVISION_4 4
|
#define E1000_REVISION_4 4
|
||||||
|
|
||||||
|
|
|
@ -1028,7 +1028,9 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
|
||||||
|
|
||||||
/* Work-around I218 hang issue */
|
/* Work-around I218 hang issue */
|
||||||
if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
|
if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
|
||||||
(hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V)) {
|
(hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V) ||
|
||||||
|
(hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) ||
|
||||||
|
(hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) {
|
||||||
ret_val = e1000_k1_workaround_lpt_lp(hw, link);
|
ret_val = e1000_k1_workaround_lpt_lp(hw, link);
|
||||||
if (ret_val)
|
if (ret_val)
|
||||||
return ret_val;
|
return ret_val;
|
||||||
|
@ -4203,7 +4205,9 @@ void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw)
|
||||||
u16 phy_reg, device_id = hw->adapter->pdev->device;
|
u16 phy_reg, device_id = hw->adapter->pdev->device;
|
||||||
|
|
||||||
if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
|
if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
|
||||||
(device_id == E1000_DEV_ID_PCH_LPTLP_I218_V)) {
|
(device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) ||
|
||||||
|
(device_id == E1000_DEV_ID_PCH_I218_LM3) ||
|
||||||
|
(device_id == E1000_DEV_ID_PCH_I218_V3)) {
|
||||||
u32 fextnvm6 = er32(FEXTNVM6);
|
u32 fextnvm6 = er32(FEXTNVM6);
|
||||||
|
|
||||||
ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK);
|
ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK);
|
||||||
|
|
|
@ -6975,6 +6975,10 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci_tbl) = {
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt },
|
||||||
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt },
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt },
|
||||||
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM2), board_pch_lpt },
|
||||||
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V2), board_pch_lpt },
|
||||||
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM3), board_pch_lpt },
|
||||||
|
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V3), board_pch_lpt },
|
||||||
|
|
||||||
{ 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
|
{ 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue