This is a note to let you know that I've just added the patch titled
e1000e: Reset 82577/82578 PHY before first PHY register read
to the 2.6.32-longterm tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/longterm/longterm-queue-2.6.32.git;a=summary
The filename of the patch is:
e1000e-reset-82577-82578-phy-before-first-phy-regist.patch
and it can be found in the queue-2.6.32 subdirectory.
If you, or anyone else, feels it should not be added to the 2.6.32 longterm
tree,
please let <[email protected]> know about it.
>From 22e70e015ffb7413667d9027bbf53b0efa012f0d Mon Sep 17 00:00:00 2001
From: Bruce Allan <[email protected]>
Date: Wed, 5 May 2010 22:00:27 +0000
Subject: e1000e: Reset 82577/82578 PHY before first PHY register read
From: Bruce Allan <[email protected]>
commit 627c8a041f7aaaea93c766f69bd61d952a277586 upstream.
Reset the PHY before first accessing it. Doing so, ensure that the PHY is
in a known good state before we read/write PHY registers. This fixes a
driver probe failure.
Signed-off-by: Bruce Allan <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
[Backported to 2.6.32 by dann frazier <[email protected]>]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/net/e1000e/ich8lan.c | 11 +++++++++++
1 file changed, 11 insertions(+)
--- a/drivers/net/e1000e/ich8lan.c
+++ b/drivers/net/e1000e/ich8lan.c
@@ -274,6 +274,16 @@ static s32 e1000_init_phy_params_pchlan(
phy->ops.write_phy_reg_locked = e1000_write_phy_reg_hv_locked;
phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT;
+ /*
+ * Reset the PHY before any acccess to it. Doing so, ensures that
+ * the PHY is in a known good state before we read/write PHY registers.
+ * The generic reset is sufficient here, because we haven't determined
+ * the PHY type yet.
+ */
+ ret_val = e1000e_phy_hw_reset_generic(hw);
+ if (ret_val)
+ goto out;
+
phy->id = e1000_phy_unknown;
e1000e_get_phy_id(hw);
phy->type = e1000e_get_phy_type_from_id(phy->id);
@@ -287,6 +297,7 @@ static s32 e1000_init_phy_params_pchlan(
phy->ops.commit_phy = e1000e_phy_sw_reset;
}
+ out:
return ret_val;
}
Patches currently in longterm-queue-2.6.32 which might be from
[email protected] are
/home/gregkh/linux/longterm/longterm-queue-2.6.32/queue-2.6.32/e1000e-reset-82577-82578-phy-before-first-phy-regist.patch
_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable