On 04/05/2018 04:44 AM, esben.haaben...@gmail.com wrote: > From: Esben Haabendal <e...@deif.com> > > Add a function for use in PHY driver probe functions, reading current > autoneg, speed and duplex configuration from BMCR register. > > Useful for PHY that supports hardware strapped configuration, enabling > Linux to respect that configuration (i.e. strapped non-autoneg > configuration). > > Signed-off-by: Esben Haabendal <e...@deif.com> > Cc: Rasmus Villemoes <rasmus.villem...@prevas.dk> > --- > drivers/net/phy/phy_device.c | 41 +++++++++++++++++++++++++++++++++++++++++ > include/linux/phy.h | 1 + > 2 files changed, 42 insertions(+) > > diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c > index 74664a6c0cdc..cc52ff2a2344 100644 > --- a/drivers/net/phy/phy_device.c > +++ b/drivers/net/phy/phy_device.c > @@ -1673,6 +1673,47 @@ int genphy_config_init(struct phy_device *phydev) > } > EXPORT_SYMBOL(genphy_config_init); > > +/** > + * genphy_read_config - read configuration from PHY > + * @phydev: target phy_device struct > + * > + * Description: Reads MII_BMCR and sets phydev autoneg, speed and duplex > + * accordingly. For use in driver probe functions, to respect strapped > + * configuration settings. > + */ > +int genphy_read_config(struct phy_device *phydev)
This duplicates what already exists, in part at least within genphy_read_status() can you find a way to use that? I really wonder how this is going to work though because an user can decide to force the PHY to have auto-negotiation disabled just like a MAC could actually attempt to do that while connecting to the PHY... more comments in patch 2. -- Florian