Re: [PATCH 1/2] net: phy: Helper function for reading strapped configuration values
From: Esben Haabendal <hidden>
Date: 2018-04-05 20:35:03
Also in:
lkml
Florian Fainelli [off-list ref] writes:
On 04/05/2018 04:44 AM, esben.haabendal@gmail.com wrote:quoted
From: Esben Haabendal <redacted> 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 <redacted> Cc: Rasmus Villemoes <redacted> --- 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