aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c')
-rw-r--r--target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
index 28c9250162..74babc59a0 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
@@ -88,8 +88,13 @@ int fe_connect_phy_node(struct fe_priv *priv, struct device_node *phy_node, int
return -ENODEV;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
phydev->supported &= PHY_GBIT_FEATURES;
phydev->advertising = phydev->supported;
+#else
+ phy_set_max_speed(phydev, SPEED_1000);
+ linkmode_copy(phydev->advertising, phydev->supported);
+#endif
phydev->no_auto_carrier_off = 1;
dev_info(priv->dev,
@@ -110,9 +115,18 @@ static void phy_init(struct fe_priv *priv, struct phy_device *phy)
phy->autoneg = AUTONEG_ENABLE;
phy->speed = 0;
phy->duplex = 0;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
phy->supported &= IS_ENABLED(CONFIG_NET_RALINK_MDIO_MT7620) ?
PHY_GBIT_FEATURES : PHY_BASIC_FEATURES;
phy->advertising = phy->supported | ADVERTISED_Autoneg;
+#else
+ phy_set_max_speed(phy, IS_ENABLED(CONFIG_NET_RALINK_MDIO_MT7620) ?
+ SPEED_1000 :
+ SPEED_100);
+ linkmode_copy(phy->advertising, phy->supported);
+ linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, phy->advertising);
+#endif
phy_start_aneg(phy);
}