[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9235D6609DB808459E95D78E17F2E43D404ABB4D@CHN-SV-EXMX02.mchp-main.com>
Date: Wed, 10 Feb 2016 23:18:27 +0000
From: <Woojung.Huh@...rochip.com>
To: <f.fainelli@...il.com>, <davem@...emloft.net>
CC: <netdev@...r.kernel.org>
Subject: RE: [PATCH net-next 2/3] lan78xx: setting phy features in phy driver
> > +static int lan88xx_config_init(struct phy_device *phydev)
> > +{
> > + phydev->supported &= phydev->drv->features;
> > + phydev->advertising &= phydev->drv->features;
>
> This looks suspicious, phy_probe() takes the driver supported features
> and assigns it to phydev->supported, and phydev->advertising, is not
> that working somehow?
>
> genphy_config_init() does look at the current MII_BMRS value to
> determine what is supported by the PHY, and masks it in
> phydev->supported, so that could indeed be an issue if we had not had a
> change to mask with the supported modes before.
>
> I think we need more explanation here as to what kind of bug you may
> have been observing, there could be one.
SUPPORTED_Pause & SUPPORTED_Asym_Pause set at phydev->features are removed by genphy_config_init().
As you pointed, it may be better to modify genphy_config_init() than each driver's config_init routine.
- Woojung
Powered by blists - more mailing lists