[U-Boot] [PATCH] net: phy: atheros: Fix problem with phy_reset() clearing BMCR

Stefan Agner stefan at agner.ch
Tue Feb 23 06:12:53 CET 2016


On 2016-02-19 13:24, Fabio Estevam wrote:
> On Fri, Feb 19, 2016 at 5:52 AM, Alison Wang <b18965 at freescale.com> wrote:
>> In commit <a058052c358c> [net: phy: do not read configuration register on
>> reset], phy_reset() will clear the BMCR register. Bit 12(AUTO_NEGOTIATION)
>> is cleared too. It causes auto-negotiation timeout error on Atheros's
>> PHY AR8033.
>>
>> To fix this problem, genphy_config_aneg() and genphy_restart_aneg()
>> needs to be called in ar8035_config() to enable and restart
>> auto-negotiation.
> 
> It is always a good idea to put the author of the offending patch on Cc.
> 
> Added Stefan.
> 

Thanks.

Hm, even more fallout from my change, sorry about that.

I guess explicitly reconfigure and restart autonegotiation makes sense.

Acked-by: Stefan Agner <stefan at agner.ch>

--
Stefan

>>
>> Signed-off-by: Alison Wang <alison.wang at nxp.com>
>> ---
>>  drivers/net/phy/atheros.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c
>> index ba57b1a..e57c412 100644
>> --- a/drivers/net/phy/atheros.c
>> +++ b/drivers/net/phy/atheros.c
>> @@ -33,6 +33,9 @@ static int ar8035_config(struct phy_device *phydev)
>>
>>         phydev->supported = phydev->drv->features;
>>
>> +       genphy_config_aneg(phydev);
>> +       genphy_restart_aneg(phydev);
>> +
>>         return 0;
>>  }
>>
>> --
>> 2.1.0.27.g96db324
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list