Re: [PATCH v2 1/2] net: phy: Fix PHY AN done state machine for interrupt driven PHYs

From: Roger Quadros
Date: Mon Mar 27 2017 - 07:53:33 EST


On 23/03/17 11:52, Sergei Shtylyov wrote:
> Hello!
>
> On 3/22/2017 2:02 PM, Roger Quadros wrote:
>
>> he ethernet link on an interrupt driven PHY was not coming up if the
>
> s/he/The/?
>
>> ethernet cable was plugged before the ethernet interface was brought up.
>
> Also, my spell checker trips on "ethernet", perhaps should be capitalized?

Thanks. I'll fix both issues.

>
>> The PHY state machine seems to be stuck from RUNNING to AN state
>> with no new interrupts from the PHY. So it doesn't know when the
>> PHY Auto-negotiation has been completed and doesn't transition to RUNNING
>> state with ANEG done thus netif_carrier_on() is never called.
>>
>> NOTE: genphy_config_aneg() will not restart PHY Auto-negotiation of
>> advertisement parameters didn't change.
>>
>> Fix this by scheduling the PHY state machine in phy_start_aneg().
>>
>> Fixes: 3c293f4e08b5 ("net: phy: Trigger state machine on state change and not polling.")
>> Cc: stable <stable@xxxxxxxxxxxxxxx> # v4.9+
>> Signed-off-by: Roger Quadros <rogerq@xxxxxx>
> [...]
>
> MBR, Sergei
>

cheers,
-roger