diff mbox

[01/14] tg3: Fix 5906 link problems

Message ID 1235616367.15995@xw6200
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Matt Carlson Feb. 26, 2009, 12:21 a.m. UTC
Commit 6833c043f9fc03696fde623914c4a0277df2a0bc introduced the phy
auto-powerdown capability.  While the APD feature only works for 5761
and 5784 asic revisions, the (harmless portion of the) code was applied
to all 5705 and newer devices.  However, the 5906 phy departs from the
usual design.  This commit was interfering with the 5906's ability to
negotiate link against some switches.  This patch corrects the problem.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
---
 drivers/net/tg3.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Comments

Matt Carlson March 3, 2009, 8:17 p.m. UTC | #1
Hi David.  Can we also apply this patch into net-2.6?  It fixes a
regression that was introduced during the 2.6.29 development cycle.

On Wed, Feb 25, 2009 at 04:21:20PM -0800, Matt Carlson wrote:
> Commit 6833c043f9fc03696fde623914c4a0277df2a0bc introduced the phy
> auto-powerdown capability.  While the APD feature only works for 5761
> and 5784 asic revisions, the (harmless portion of the) code was applied
> to all 5705 and newer devices.  However, the 5906 phy departs from the
> usual design.  This commit was interfering with the 5906's ability to
> negotiate link against some switches.  This patch corrects the problem.
> 
> Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
> Signed-off-by: Benjamin Li <benli@broadcom.com>
> Signed-off-by: Michael Chan <mchan@broadcom.com>
> ---
>  drivers/net/tg3.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
> index 67630fb..c7bbbb1 100644
> --- a/drivers/net/tg3.c
> +++ b/drivers/net/tg3.c
> @@ -1473,7 +1473,8 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable)
>  {
>  	u32 reg;
>  
> -	if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
> +	if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) ||
> +	    GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
>  		return;
>  
>  	reg = MII_TG3_MISC_SHDW_WREN |
> -- 
> 1.6.0.6
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller March 4, 2009, 11:08 p.m. UTC | #2
From: "Matt Carlson" <mcarlson@broadcom.com>
Date: Tue, 3 Mar 2009 12:17:39 -0800

> Hi David.  Can we also apply this patch into net-2.6?  It fixes a
> regression that was introduced during the 2.6.29 development cycle.

Sure, I'll queue it up to net-2.6
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 67630fb..c7bbbb1 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -1473,7 +1473,8 @@  static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable)
 {
 	u32 reg;
 
-	if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
+	if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) ||
+	    GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
 		return;
 
 	reg = MII_TG3_MISC_SHDW_WREN |