igb: update the approach taken to acquiring and releasing the phy lock
authorAlexander Duyck <alexander.h.duyck@intel.com>
Mon, 5 Oct 2009 06:32:07 +0000 (06:32 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Oct 2009 21:59:17 +0000 (14:59 -0700)
The current approach is just using a ?: type mechanism to set the phy
locking bit.  This if fine for now but limits us to only 2.  Switch to a
nested if statement for future compatiblity with more than 2 phys.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/igb/e1000_82575.c

index 5604b3e08f3570c1d9051f7e5fa323d045a98a04..65b900028bca1c28a0bf8ec109a55fb4cc2ce369 100644 (file)
@@ -240,9 +240,10 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
  **/
 static s32 igb_acquire_phy_82575(struct e1000_hw *hw)
 {
-       u16 mask;
+       u16 mask = E1000_SWFW_PHY0_SM;
 
-       mask = hw->bus.func ? E1000_SWFW_PHY1_SM : E1000_SWFW_PHY0_SM;
+       if (hw->bus.func == E1000_FUNC_1)
+               mask = E1000_SWFW_PHY1_SM;
 
        return igb_acquire_swfw_sync_82575(hw, mask);
 }
@@ -256,9 +257,11 @@ static s32 igb_acquire_phy_82575(struct e1000_hw *hw)
  **/
 static void igb_release_phy_82575(struct e1000_hw *hw)
 {
-       u16 mask;
+       u16 mask = E1000_SWFW_PHY0_SM;
+
+       if (hw->bus.func == E1000_FUNC_1)
+               mask = E1000_SWFW_PHY1_SM;
 
-       mask = hw->bus.func ? E1000_SWFW_PHY1_SM : E1000_SWFW_PHY0_SM;
        igb_release_swfw_sync_82575(hw, mask);
 }