diff mbox

[net-next] net: dsa: do not call phy_start_aneg

Message ID 1412301363-8478-2-git-send-email-f.fainelli@gmail.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Florian Fainelli Oct. 3, 2014, 1:56 a.m. UTC
Commit f7f1de51edbd ("net: dsa: start and stop the PHY state machine")
add calls to phy_start() in dsa_slave_open() respectively phy_stop() in
dsa_slave_close().

We also call phy_start_aneg() in dsa_slave_create(), and this call is
messing up with the PHY state machine, since we basically start the
auto-negotiation, and later on restart it when calling phy_start().
phy_start() does not currently handle the PHY_FORCING or PHY_AN states
properly, but such a fix would be too invasive for this window.

Fixes: f7f1de51edbd ("net: dsa: start and stop the PHY state machine")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 net/dsa/slave.c | 1 -
 1 file changed, 1 deletion(-)

Comments

David Miller Oct. 5, 2014, 12:45 a.m. UTC | #1
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Thu,  2 Oct 2014 18:56:03 -0700

> Commit f7f1de51edbd ("net: dsa: start and stop the PHY state machine")
> add calls to phy_start() in dsa_slave_open() respectively phy_stop() in
> dsa_slave_close().
> 
> We also call phy_start_aneg() in dsa_slave_create(), and this call is
> messing up with the PHY state machine, since we basically start the
> auto-negotiation, and later on restart it when calling phy_start().
> phy_start() does not currently handle the PHY_FORCING or PHY_AN states
> properly, but such a fix would be too invasive for this window.
> 
> Fixes: f7f1de51edbd ("net: dsa: start and stop the PHY state machine")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

Applied, thanks.
--
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/net/dsa/slave.c b/net/dsa/slave.c
index 36953c84ff2d..8030489d9cbe 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -608,7 +608,6 @@  dsa_slave_create(struct dsa_switch *ds, struct device *parent,
 		p->phy->speed = 0;
 		p->phy->duplex = 0;
 		p->phy->advertising = p->phy->supported | ADVERTISED_Autoneg;
-		phy_start_aneg(p->phy);
 	}
 
 	return slave_dev;