net: phy: prevent PHYs w/o Clause 22 regs from calling genphy_config_aneg
genphy_config_aneg() should be called only by PHYs that implement the Clause 22 register set. Prevent Clause 45 PHYs that don't implement the register set from calling the genphy function. Signed-off-by: Camelia Groza <camelia.groza@nxp.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7e50b2a51d
commit
34786005ec
|
@ -471,8 +471,14 @@ static int phy_config_aneg(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
if (phydev->drv->config_aneg)
|
if (phydev->drv->config_aneg)
|
||||||
return phydev->drv->config_aneg(phydev);
|
return phydev->drv->config_aneg(phydev);
|
||||||
else
|
|
||||||
return genphy_config_aneg(phydev);
|
/* Clause 45 PHYs that don't implement Clause 22 registers are not
|
||||||
|
* allowed to call genphy_config_aneg()
|
||||||
|
*/
|
||||||
|
if (phydev->is_c45 && !(phydev->c45_ids.devices_in_package & BIT(0)))
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
|
return genphy_config_aneg(phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue