
Hi Joe,
On Wed, 2015-12-23 at 19:44 +0300, Alexey Brodkin wrote:
From: Sascha Hauer s.hauer@pengutronix.de
of_set_phy_supported allows overwiting hardware capabilities of a phy with values from the devicetree. This does not work with the genphy driver though because the genphys config_init function will overwrite all values adjusted by of_set_phy_supported. Fix this by initialising the genphy features in the phy_driver struct and in config_init just limit the features to the ones the hardware can actually support. The resulting features are a subset of the devicetree specified features and the hardware features.
This is a copy of the patch from Linux kernel, see http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c2...
Signed-off-by: Sascha Hauer s.hauer@pengutronix.de Signed-off-by: Alexey Brodkin abrodkin@synopsys.com Cc: Joe Hershberger joe.hershberger@ni.com
drivers/net/phy/phy.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 084276f..ec9be6b 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -380,8 +380,6 @@ int genphy_config(struct phy_device *phydev) int val; u32 features;
- /* For now, I'll claim that the generic driver supports
features = (SUPPORTED_TP | SUPPORTED_MII | SUPPORTED_AUI | SUPPORTED_FIBRE | SUPPORTED_BNC);* all possible port types */
@@ -420,8 +418,8 @@ int genphy_config(struct phy_device *phydev) features |= SUPPORTED_1000baseX_Half; }
- phydev->supported = features;
- phydev->advertising = features;
phydev->supported &= features;
phydev->advertising &= features;
genphy_config_aneg(phydev);
@@ -445,7 +443,9 @@ static struct phy_driver genphy_driver = { .uid = 0xffffffff, .mask = 0xffffffff, .name = "Generic PHY",
- .features = 0,
- .features = PHY_GBIT_FEATURES | SUPPORTED_MII |
SUPPORTED_AUI | SUPPORTED_FIBRE |
.config = genphy_config, .startup = genphy_startup, .shutdown = genphy_shutdown,SUPPORTED_BNC,
Any chance for that one to be applied? This patch is required to implement phy max speed limitation by subsequent patches.
-Alexey