Message ID | 20220818164029.2063293-1-sean.anderson@seco.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9dbdfd4a9f3416c84d22623e6b5bfe1966e336b7 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: dpaa: Fix <1G ethernet on LS1046ARDB | expand |
On Thu, Aug 18, 2022 at 12:40:29PM -0400, Sean Anderson wrote: > 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> > Acked-by: Camelia Groza <camelia.groza@nxp.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Thu, 18 Aug 2022 12:40:29 -0400 you wrote: > 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> > Acked-by: Camelia Groza <camelia.groza@nxp.com> > > [...] Here is the summary with links: - [net] net: dpaa: Fix <1G ethernet on LS1046ARDB https://git.kernel.org/netdev/net/c/9dbdfd4a9f34 You are awesome, thank you!
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);