net: phy: split devices_in_package
We have two competing requirements for the devices_in_package field. We want to use it as a bit array indicating which MMDs are present, but we also want to know if the Clause 22 registers are present. Since "devices in package" is a term used in the 802.3 specification, keep this as the as-specified values read from the PHY, and introduce a new member "mmds_present" to indicate which MMDs are actually present in the PHY, derived from the "devices in package" value. Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -219,7 +219,7 @@ int genphy_c45_read_link(struct phy_device *phydev)
|
||||
int val, devad;
|
||||
bool link = true;
|
||||
|
||||
if (phydev->c45_ids.devices_in_package & MDIO_DEVS_AN) {
|
||||
if (phydev->c45_ids.mmds_present & MDIO_DEVS_AN) {
|
||||
val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_CTRL1);
|
||||
if (val < 0)
|
||||
return val;
|
||||
@@ -409,7 +409,7 @@ int genphy_c45_pma_read_abilities(struct phy_device *phydev)
|
||||
int val;
|
||||
|
||||
linkmode_clear_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, phydev->supported);
|
||||
if (phydev->c45_ids.devices_in_package & MDIO_DEVS_AN) {
|
||||
if (phydev->c45_ids.mmds_present & MDIO_DEVS_AN) {
|
||||
val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1);
|
||||
if (val < 0)
|
||||
return val;
|
||||
|
Reference in New Issue
Block a user