net: dpaa: Fix <1G ethernet on LS1046ARDB
As discussed in commit73a21fa817
("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:12cf1b89a6
("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> Link: https://lore.kernel.org/r/20220818164029.2063293-1-sean.anderson@seco.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
4c2d0b039c
commit
9dbdfd4a9f
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue