tg3: Manage gphy power for CPMU-less devs only
authorMatt Carlson <mcarlson@broadcom.com>
Mon, 2 Aug 2010 11:25:59 +0000 (11:25 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Aug 2010 22:46:28 +0000 (15:46 -0700)
This patch changes the code to only manage the PCIe gphy power for
CPMU-less devices only.  The CPMU takes over management for newer
chips.

Reviewed-by: Benjamin Li <benli@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index 5d155c50e6e3afa4e435ee6fac0de64e5c0f9a67..38979f24e5411a45a0b3a700695dce01febeeda9 100644 (file)
@@ -6948,8 +6948,11 @@ static int tg3_chip_reset(struct tg3 *tp)
                     tr32(GRC_VCPU_EXT_CTRL) & ~GRC_VCPU_EXT_CTRL_HALT_CPU);
        }
 
-       if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS)
+       /* Manage gphy power for all CPMU absent PCIe devices. */
+       if ((tp->tg3_flags2 & TG3_FLG2_5705_PLUS) &&
+           !(tp->tg3_flags & TG3_FLAG_CPMU_PRESENT))
                val |= GRC_MISC_CFG_KEEP_GPHY_POWER;
+
        tw32(GRC_MISC_CFG, val);
 
        /* restore 5701 hardware bug workaround write method */