mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
e1000e: Reset 82577/82578 PHY before first PHY register read
commit 627c8a041f 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 <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[Backported to 2.6.32 by dann frazier <dannf@debian.org>]
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
889491211b
commit
3aeab7c108
|
|
@ -274,6 +274,16 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw)
|
|||
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(struct e1000_hw *hw)
|
|||
phy->ops.commit_phy = e1000e_phy_sw_reset;
|
||||
}
|
||||
|
||||
out:
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user