* [TG3]: Fix 2nd ifup failure on 5752M.
@ 2006-11-02 21:02 Michael Chan
2006-11-03 9:01 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Michael Chan @ 2006-11-02 21:02 UTC (permalink / raw)
To: davem; +Cc: linville, netdev
[TG3]: Fix 2nd ifup failure on 5752M.
This fixes a bug reported in:
http://bugzilla.kernel.org/show_bug.cgi?id=7438
tg3_close() turns off the PHY if WoL and ASF are both disabled. On
the next tg3_open(), some devices such as the 5752M will not be
brought up correctly without a PHY reset early in the reset sequence.
The PHY clock is needed for some internal MAC blocks to function
correctly.
This problem is fixed by always resetting the PHY early in
tg3_reset_hw() when it is called from tg3_open() or tg3_resume().
tg3_setup_phy() can then be called later in the sequence without the
reset_phy parameter set to 1, since the PHY reset is already done.
Update version to 3.68.
Signed-off-by: Michael Chan <mchan@broadcom.com>
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 8e39849..8f059b7 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -68,8 +68,8 @@ #include "tg3.h"
#define DRV_MODULE_NAME "tg3"
#define PFX DRV_MODULE_NAME ": "
-#define DRV_MODULE_VERSION "3.67"
-#define DRV_MODULE_RELDATE "October 18, 2006"
+#define DRV_MODULE_VERSION "3.68"
+#define DRV_MODULE_RELDATE "November 02, 2006"
#define TG3_DEF_MAC_MODE 0
#define TG3_DEF_RX_MODE 0
@@ -6014,7 +6014,7 @@ static int tg3_reset_hw(struct tg3 *tp,
tg3_abort_hw(tp, 1);
}
- if ((tp->tg3_flags2 & TG3_FLG2_MII_SERDES) && reset_phy)
+ if (reset_phy)
tg3_phy_reset(tp);
err = tg3_chip_reset(tp);
@@ -6574,7 +6574,7 @@ #endif
tw32(GRC_LOCAL_CTRL, tp->grc_local_ctrl);
}
- err = tg3_setup_phy(tp, reset_phy);
+ err = tg3_setup_phy(tp, 0);
if (err)
return err;
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [TG3]: Fix 2nd ifup failure on 5752M.
2006-11-02 21:02 [TG3]: Fix 2nd ifup failure on 5752M Michael Chan
@ 2006-11-03 9:01 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2006-11-03 9:01 UTC (permalink / raw)
To: mchan; +Cc: linville, netdev
From: "Michael Chan" <mchan@broadcom.com>
Date: Thu, 02 Nov 2006 13:02:29 -0800
> [TG3]: Fix 2nd ifup failure on 5752M.
>
> This fixes a bug reported in:
>
> http://bugzilla.kernel.org/show_bug.cgi?id=7438
>
> tg3_close() turns off the PHY if WoL and ASF are both disabled. On
> the next tg3_open(), some devices such as the 5752M will not be
> brought up correctly without a PHY reset early in the reset sequence.
> The PHY clock is needed for some internal MAC blocks to function
> correctly.
>
> This problem is fixed by always resetting the PHY early in
> tg3_reset_hw() when it is called from tg3_open() or tg3_resume().
> tg3_setup_phy() can then be called later in the sequence without the
> reset_phy parameter set to 1, since the PHY reset is already done.
>
> Update version to 3.68.
>
> Signed-off-by: Michael Chan <mchan@broadcom.com>
Applied, thanks a lot Michael.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-11-03 9:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-02 21:02 [TG3]: Fix 2nd ifup failure on 5752M Michael Chan
2006-11-03 9:01 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).