[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