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

From: Esben Haabendal
Date: Thu Apr 05 2018 - 16:34:31 EST


Florian Fainelli <f.fainelli@xxxxxxxxx> writes:

> 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?

Make a small static function for updating duplex and speed fields from a
BMCR value. It will not be big re-use, but it would make sense. I will
do that in next patch version.

/Esben