Message ID | YffqmcR4iC3xKaRm@earth.li (mailing list archive) |
---|---|
State | Accepted |
Commit | 881cc731df6af99a21622e9be25a23b81adcd10b |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] net: phy: Fix qca8081 with speeds lower than 2.5Gb/s | expand |
On Mon, Jan 31, 2022 at 01:56:41PM +0000, Jonathan McDowell wrote: > A typo in qca808x_read_status means we try to set SMII mode on the port > rather than SGMII when the link speed is not 2.5Gb/s. This results in no > traffic due to the mismatch in configuration between the phy and the > mac. > > v2: > Only change interface mode when the link is up > > Fixes: 79c7bc0521545 ("net: phy: add qca8081 read_status") > Cc: stable@vger.kernel.org > Signed-off-by: Jonathan McDowell <noodles@earth.li> Thanks! Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Mon, 31 Jan 2022 13:56:41 +0000 you wrote: > A typo in qca808x_read_status means we try to set SMII mode on the port > rather than SGMII when the link speed is not 2.5Gb/s. This results in no > traffic due to the mismatch in configuration between the phy and the > mac. > > v2: > Only change interface mode when the link is up > > [...] Here is the summary with links: - [net,v2] net: phy: Fix qca8081 with speeds lower than 2.5Gb/s https://git.kernel.org/netdev/net/c/881cc731df6a You are awesome, thank you!
diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c index 5b6c0d120e09..29aa811af430 100644 --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c @@ -1688,19 +1688,19 @@ static int qca808x_read_status(struct phy_device *phydev) if (ret < 0) return ret; - if (phydev->link && phydev->speed == SPEED_2500) - phydev->interface = PHY_INTERFACE_MODE_2500BASEX; - else - phydev->interface = PHY_INTERFACE_MODE_SMII; - - /* generate seed as a lower random value to make PHY linked as SLAVE easily, - * except for master/slave configuration fault detected. - * the reason for not putting this code into the function link_change_notify is - * the corner case where the link partner is also the qca8081 PHY and the seed - * value is configured as the same value, the link can't be up and no link change - * occurs. - */ - if (!phydev->link) { + if (phydev->link) { + if (phydev->speed == SPEED_2500) + phydev->interface = PHY_INTERFACE_MODE_2500BASEX; + else + phydev->interface = PHY_INTERFACE_MODE_SGMII; + } else { + /* generate seed as a lower random value to make PHY linked as SLAVE easily, + * except for master/slave configuration fault detected. + * the reason for not putting this code into the function link_change_notify is + * the corner case where the link partner is also the qca8081 PHY and the seed + * value is configured as the same value, the link can't be up and no link change + * occurs. + */ if (phydev->master_slave_state == MASTER_SLAVE_STATE_ERR) { qca808x_phy_ms_seed_enable(phydev, false); } else {
A typo in qca808x_read_status means we try to set SMII mode on the port rather than SGMII when the link speed is not 2.5Gb/s. This results in no traffic due to the mismatch in configuration between the phy and the mac. v2: Only change interface mode when the link is up Fixes: 79c7bc0521545 ("net: phy: add qca8081 read_status") Cc: stable@vger.kernel.org Signed-off-by: Jonathan McDowell <noodles@earth.li> --- drivers/net/phy/at803x.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)