Message ID | 20220719235002.1944800-2-sean.anderson@seco.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: phy: Add support for rate adaptation | expand |
> -----Original Message----- > From: Sean Anderson <sean.anderson@seco.com> > Sent: Wednesday, July 20, 2022 2:50 > To: netdev@vger.kernel.org; Andrew Lunn <andrew@lunn.ch>; Heiner > Kallweit <hkallweit1@gmail.com>; Russell King <linux@armlinux.org.uk> > Cc: Alexandru Marginean <alexandru.marginean@nxp.com>; Paolo Abeni > <pabeni@redhat.com>; David S . Miller <davem@davemloft.net>; linux- > kernel@vger.kernel.org; Vladimir Oltean <olteanv@gmail.com>; Eric > Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; > Sean Anderson <sean.anderson@seco.com>; Bhadram Varka > <vbhadram@nvidia.com>; Madalin Bucur <madalin.bucur@nxp.com> > Subject: [PATCH v2 01/11] net: dpaa: Fix <1G ethernet on LS1046ARDB > > As discussed in commit 73a21fa817f0 ("dpaa_eth: support all modes with > rate adapting PHYs"), we must add a workaround for Aquantia phys with > in-tree support in order to keep 1G support working. Update this > workaround for the AQR113C phy found on revision C LS1046ARDB boards. > > Fixes: 12cf1b89a668 ("net: phy: Add support for AQR113C EPHY") > Signed-off-by: Sean Anderson <sean.anderson@seco.com> > --- > In a previous version of this commit, I referred to an AQR115, however > on further inspection this appears to be an AQR113C. Confusingly, the > higher-numbered phys support lower data rates. > > (no changes since v1) Acked-by: Camelia Groza <camelia.groza@nxp.com>
diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c index 45634579adb6..a770bab4d1ed 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c @@ -2886,6 +2886,7 @@ static void dpaa_adjust_link(struct net_device *net_dev) /* The Aquantia PHYs are capable of performing rate adaptation */ #define PHY_VEND_AQUANTIA 0x03a1b400 +#define PHY_VEND_AQUANTIA2 0x31c31c00 static int dpaa_phy_init(struct net_device *net_dev) { @@ -2893,6 +2894,7 @@ static int dpaa_phy_init(struct net_device *net_dev) struct mac_device *mac_dev; struct phy_device *phy_dev; struct dpaa_priv *priv; + u32 phy_vendor; priv = netdev_priv(net_dev); mac_dev = priv->mac_dev; @@ -2905,9 +2907,11 @@ static int dpaa_phy_init(struct net_device *net_dev) return -ENODEV; } + phy_vendor = phy_dev->drv->phy_id & GENMASK(31, 10); /* Unless the PHY is capable of rate adaptation */ if (mac_dev->phy_if != PHY_INTERFACE_MODE_XGMII || - ((phy_dev->drv->phy_id & GENMASK(31, 10)) != PHY_VEND_AQUANTIA)) { + (phy_vendor != PHY_VEND_AQUANTIA && + phy_vendor != PHY_VEND_AQUANTIA2)) { /* remove any features not supported by the controller */ ethtool_convert_legacy_u32_to_link_mode(mask, mac_dev->if_support);
As discussed in commit 73a21fa817f0 ("dpaa_eth: support all modes with rate adapting PHYs"), we must add a workaround for Aquantia phys with in-tree support in order to keep 1G support working. Update this workaround for the AQR113C phy found on revision C LS1046ARDB boards. Fixes: 12cf1b89a668 ("net: phy: Add support for AQR113C EPHY") Signed-off-by: Sean Anderson <sean.anderson@seco.com> --- In a previous version of this commit, I referred to an AQR115, however on further inspection this appears to be an AQR113C. Confusingly, the higher-numbered phys support lower data rates. (no changes since v1) drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)