Re: [PATCH 1/2] net: phy: Helper function for reading strapped configuration values

From: Florian Fainelli
Date: Thu Apr 05 2018 - 12:00:24 EST




On 04/05/2018 04:44 AM, esben.haabendal@xxxxxxxxx wrote:
> From: Esben Haabendal <eha@xxxxxxxx>
>
> 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 <eha@xxxxxxxx>
> Cc: Rasmus Villemoes <rasmus.villemoes@xxxxxxxxx>
> ---
> 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