diff options
| author | Robert Marko <robert.marko@sartura.hr> | 2020-03-03 20:19:30 +0100 |
|---|---|---|
| committer | Petr Štetiar <ynezz@true.cz> | 2020-03-16 22:21:45 +0100 |
| commit | 2b7344055bce2ac42c74e5eaa914c4adf780cf84 (patch) | |
| tree | b8fed94fddb0c9a89902794df9dadc21ec9a4b58 /target/linux | |
| parent | f521ef5ff3110018fb8b4e6827e2a5d7f32c41f0 (diff) | |
| download | upstream-2b7344055bce2ac42c74e5eaa914c4adf780cf84.tar.gz upstream-2b7344055bce2ac42c74e5eaa914c4adf780cf84.tar.bz2 upstream-2b7344055bce2ac42c74e5eaa914c4adf780cf84.zip | |
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>
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch | 6 | ||||
| -rw-r--r-- | target/linux/ipq40xx/patches-5.4/706-ar40xx-abort-probe-on-missig-phy.patch | 11 |
2 files changed, 3 insertions, 14 deletions
diff --git a/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch b/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch index 6df447fcd5e..083de038a27 100644 --- a/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch +++ b/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch @@ -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, diff --git a/target/linux/ipq40xx/patches-5.4/706-ar40xx-abort-probe-on-missig-phy.patch b/target/linux/ipq40xx/patches-5.4/706-ar40xx-abort-probe-on-missig-phy.patch index cda05bfb9f6..19474bff0d0 100644 --- a/target/linux/ipq40xx/patches-5.4/706-ar40xx-abort-probe-on-missig-phy.patch +++ b/target/linux/ipq40xx/patches-5.4/706-ar40xx-abort-probe-on-missig-phy.patch @@ -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; |
