On Tue, Mar 3, 2020 at 8:19 PM Robert Marko <robert.ma...@sartura.hr> wrote: > > 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 > Any chance of merging this? Without this networking is broken in 5.4
> Signed-off-by: Robert Marko <robert.ma...@sartura.hr> > --- > .../patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch | 6 +++--- > .../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 6df447fcd5..083de038a2 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 cda05bfb9f..19474bff0d 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; > -- > 2.24.1 > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel