Messages in this thread | | | Subject | Re: [PATCH] net: ethernet: fec: Add missing SPEED_ | From | Heiner Kallweit <> | Date | Sat, 20 Oct 2018 17:51:42 +0200 |
| |
On 20.10.2018 17:39, Andrew Lunn wrote: >>>> I have patched by adding: >>>> phy_remove_link_mode(phy_dev, ETHTOOL_LINK_MODE_Asym_Pause_BIT); >> >> Instead of programmatically removing the feature bit it should be >> possible to do this in the PHY driver configuration. See also >> this part of phy_probe(). >> >> if (phydrv->features & (SUPPORTED_Pause | SUPPORTED_Asym_Pause)) { >> phydev->supported &= ~(SUPPORTED_Pause | SUPPORTED_Asym_Pause); >> phydev->supported |= phydrv->features & >> (SUPPORTED_Pause | SUPPORTED_Asym_Pause); >> } else { >> phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; >> } > > Sorry for the late reply. Been on vacation. > > I need to check the datasheet, but it seems like the KSZ9021 does not > support asym pause. Using the above code is the correct way to solve > this problem. Look at the bcm63xx.c:bcm63xx_config_init() which does > this. > I dare to dispute here ;) Above code snippet from phy_probe() will (try to) set also SUPPORTED_Asym_Pause, because phydrv->features doesn't include any of the two pause flags. The statement in bcm63xx_config_init you refer to seems to be a no-op to me therefore.
I'd say the correct way is to change the PHY config like this: .features = PHY_BASIC_FEATURES | SUPPORTED_Pause; It's exactly the use case the code snippet above covers.
I think the bcm63xx driver would need to be changed.
> I will cook up a patch. > > Andrew >
| |