Patch "net: phy: fix phy link up when limiting speed via device tree" has been added to the 3.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net: phy: fix phy link up when limiting speed via device tree
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-phy-fix-phy-link-up-when-limiting-speed-via-device-tree.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Fri Jul 3 19:59:07 PDT 2015
From: Mugunthan V N <[email protected]>
Date: Thu, 25 Jun 2015 22:21:02 +0530
Subject: net: phy: fix phy link up when limiting speed via device tree
From: Mugunthan V N <[email protected]>
[ Upstream commit eb686231fce3770299760f24fdcf5ad041f44153 ]
When limiting phy link speed using "max-speed" to 100mbps or less on a giga bit phy, phy never completes auto negotiation and phy state machine is held in PHY_AN. Fixing this issue by comparing the giga bit advertise though phydev->supported doesn't have it but phy has BMSR_ESTATEN set. So that auto negotiation is restarted as old and new advertise are different and link comes up fine.
--- drivers/net/phy/phy_device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/net/phy/phy_device.c +3 -2
@@ -765,10 +765,11 @@ static int genphy_config_advert(struct pif (phydev->supported & (SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full)) { adv |=ethtool_adv_to_mii_ctrl1000_t (advertise); -if (adv != oldadv) - changed =1 ; } +if (adv != oldadv) + changed =1 ; + err =phy_write (phydev,MII_CTRL1000 , adv);if (err <0 )return err;
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/net-phy-fix-phy-link-up-when-limiting-speed-via-device-tree.patch