mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 13:48:06 +00:00
ipq40xx: 5.4: fix networking PHY driver
In 5.4 kernel old u32 array way of setting network features was dropped and linkmode is now the only way. So lets migrate the PHY driver to support linkmode. Also, now in order for gigabit to work, PHY driver needs to advertise PHY_GBIT_FEATURES instead of PHY_BASIC_FEATURES Signed-off-by: Robert Marko <robert.marko@sartura.hr>
This commit is contained in:
parent
f521ef5ff3
commit
2b7344055b
@ -1837,8 +1837,8 @@
|
||||
+ if (phydev->mdio.addr == 0)
|
||||
+ ar40xx_priv->phy = phydev;
|
||||
+
|
||||
+ phydev->supported |= SUPPORTED_1000baseT_Full;
|
||||
+ phydev->advertising |= ADVERTISED_1000baseT_Full;
|
||||
+ linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, phydev->supported);
|
||||
+ linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, phydev->advertising);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
@ -1877,7 +1877,7 @@
|
||||
+ .phy_id = 0x004d0000,
|
||||
+ .name = "QCA Malibu",
|
||||
+ .phy_id_mask = 0xffff0000,
|
||||
+ .features = PHY_BASIC_FEATURES,
|
||||
+ .features = PHY_GBIT_FEATURES,
|
||||
+ .probe = ar40xx_phy_probe,
|
||||
+ .remove = ar40xx_phy_remove,
|
||||
+ .config_init = ar40xx_phy_config_init,
|
||||
|
@ -1,16 +1,5 @@
|
||||
--- a/drivers/net/phy/ar40xx.c
|
||||
+++ b/drivers/net/phy/ar40xx.c
|
||||
@@ -1808,8 +1808,8 @@ ar40xx_phy_probe(struct phy_device *phyd
|
||||
if (phydev->mdio.addr == 0)
|
||||
ar40xx_priv->phy = phydev;
|
||||
|
||||
- phydev->supported |= SUPPORTED_1000baseT_Full;
|
||||
- phydev->advertising |= ADVERTISED_1000baseT_Full;
|
||||
+ phy_set_max_speed(phydev, SPEED_1000);
|
||||
+ linkmode_copy(phydev->advertising, phydev->supported);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2021,6 +2021,12 @@ static int ar40xx_probe(struct platform_
|
||||
/* register switch */
|
||||
swdev = &priv->dev;
|
||||
|
Loading…
Reference in New Issue
Block a user