igb: fix PHY config access on 82580
82580 NICs can have up to 4 functions. This fixes phy accesses to use the correct locks for functions 2 and 3. Signed-off-by: Nicholas Nunley <nicholasx.d.nunley@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
7475271004
Коммит
ede3ef0d94
|
@ -295,6 +295,10 @@ static s32 igb_acquire_phy_82575(struct e1000_hw *hw)
|
||||||
|
|
||||||
if (hw->bus.func == E1000_FUNC_1)
|
if (hw->bus.func == E1000_FUNC_1)
|
||||||
mask = E1000_SWFW_PHY1_SM;
|
mask = E1000_SWFW_PHY1_SM;
|
||||||
|
else if (hw->bus.func == E1000_FUNC_2)
|
||||||
|
mask = E1000_SWFW_PHY2_SM;
|
||||||
|
else if (hw->bus.func == E1000_FUNC_3)
|
||||||
|
mask = E1000_SWFW_PHY3_SM;
|
||||||
|
|
||||||
return igb_acquire_swfw_sync_82575(hw, mask);
|
return igb_acquire_swfw_sync_82575(hw, mask);
|
||||||
}
|
}
|
||||||
|
@ -312,6 +316,10 @@ static void igb_release_phy_82575(struct e1000_hw *hw)
|
||||||
|
|
||||||
if (hw->bus.func == E1000_FUNC_1)
|
if (hw->bus.func == E1000_FUNC_1)
|
||||||
mask = E1000_SWFW_PHY1_SM;
|
mask = E1000_SWFW_PHY1_SM;
|
||||||
|
else if (hw->bus.func == E1000_FUNC_2)
|
||||||
|
mask = E1000_SWFW_PHY2_SM;
|
||||||
|
else if (hw->bus.func == E1000_FUNC_3)
|
||||||
|
mask = E1000_SWFW_PHY3_SM;
|
||||||
|
|
||||||
igb_release_swfw_sync_82575(hw, mask);
|
igb_release_swfw_sync_82575(hw, mask);
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,6 +164,8 @@
|
||||||
#define E1000_SWFW_EEP_SM 0x1
|
#define E1000_SWFW_EEP_SM 0x1
|
||||||
#define E1000_SWFW_PHY0_SM 0x2
|
#define E1000_SWFW_PHY0_SM 0x2
|
||||||
#define E1000_SWFW_PHY1_SM 0x4
|
#define E1000_SWFW_PHY1_SM 0x4
|
||||||
|
#define E1000_SWFW_PHY2_SM 0x20
|
||||||
|
#define E1000_SWFW_PHY3_SM 0x40
|
||||||
|
|
||||||
/* FACTPS Definitions */
|
/* FACTPS Definitions */
|
||||||
/* Device Control */
|
/* Device Control */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче