ath25: fix ethernet supported link modes for ar2313
authorSergey Ryazanov <ryazanov.s.a@gmail.com>
Sun, 6 Sep 2020 15:00:08 +0000 (17:00 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sun, 6 Sep 2020 17:49:37 +0000 (19:49 +0200)
Rework ethernet supported link modes to linkmode bitmask.

This is needed to suppress compilation errors:

   drivers/net/ethernet/atheros/ar231x/ar231x.c:1153:20: ...
     error: assignment to expression with array type
     phydev->supported &= (SUPPORTED_10baseT_Half
                       ^~

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
[cut out of bigger patch, adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath25/patches-5.4/110-ar2313_ethernet.patch

index 916e57cb36928300e613382edb01a7d291380dc3..e4f5fa8d2efd34391c173df439e44f55cbab3096 100644 (file)
 +
 +static int ar231x_mdiobus_probe(struct net_device *dev)
 +{
++      __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
 +      struct ar231x_private *const sp = netdev_priv(dev);
 +      struct phy_device *phydev = NULL;
 +
 +      }
 +
 +      /* mask with MAC supported features */
-+      phydev->supported &= (SUPPORTED_10baseT_Half
-+              | SUPPORTED_10baseT_Full
-+              | SUPPORTED_100baseT_Half
-+              | SUPPORTED_100baseT_Full
-+              | SUPPORTED_Autoneg
-+              /* | SUPPORTED_Pause | SUPPORTED_Asym_Pause */
-+              | SUPPORTED_MII
-+              | SUPPORTED_TP);
-+
-+      phydev->advertising = phydev->supported;
++      linkmode_set_bit_array(phy_10_100_features_array,
++                             ARRAY_SIZE(phy_10_100_features_array),
++                             mask);
++      linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, mask);
++      linkmode_set_bit(ETHTOOL_LINK_MODE_MII_BIT, mask);
++      linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT, mask);
++
++      linkmode_and(phydev->supported, phydev->supported, mask);
++      linkmode_copy(phydev->advertising, phydev->supported);
 +
 +      sp->phy_dev = phydev;
 +