net: phy: genphy: Make it work with of_set_phy_supported
phys start with features initialized from the phy driver and are eventually limited by of_set_phy_supported. This does not work with the genphy driver which starts with no features and overwrites phydev->supported with the values read from hardware in config_init. This overwrites the features adjusted by of_set_phy_supported. To fix this let the genphy driver start with full features which are then only limited in config_init, but never extended. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
e2eb6e50f4
commit
1607f679da
|
@ -805,8 +805,8 @@ static int genphy_config_init(struct phy_device *phydev)
|
||||||
features |= SUPPORTED_1000baseT_Half;
|
features |= SUPPORTED_1000baseT_Half;
|
||||||
}
|
}
|
||||||
|
|
||||||
phydev->supported = features;
|
phydev->supported &= features;
|
||||||
phydev->advertising = features;
|
phydev->advertising &= features;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -858,7 +858,9 @@ static struct phy_driver genphy_driver = {
|
||||||
.drv.name = "Generic PHY",
|
.drv.name = "Generic PHY",
|
||||||
.phy_id = PHY_ANY_UID,
|
.phy_id = PHY_ANY_UID,
|
||||||
.phy_id_mask = PHY_ANY_UID,
|
.phy_id_mask = PHY_ANY_UID,
|
||||||
.features = 0,
|
.features = PHY_GBIT_FEATURES | SUPPORTED_MII |
|
||||||
|
SUPPORTED_AUI | SUPPORTED_FIBRE |
|
||||||
|
SUPPORTED_BNC,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int generic_phy_register(void)
|
static int generic_phy_register(void)
|
||||||
|
|
Loading…
Reference in New Issue