Re: [PATCH] net: phy: handle state correctly in phy_stop_machine

From: Florian Fainelli
Date: Thu Mar 23 2017 - 17:46:05 EST


On 03/23/2017 02:41 PM, Florian Fainelli wrote:
> On 03/22/2017 01:27 PM, Zach Brown wrote:
>> From: Nathan Sullivan <nathan.sullivan@xxxxxx>
>>
>> If the PHY is halted on stop, then do not set the state to PHY_UP. This
>> ensures the phy will be restarted later in phy_start when the machine is
>> started again.
>
> So essentially what you want to "defeat" here is entering phy_start()
> with PHY_UP therefore not run this part:
>
> case PHY_HALTED:
> /* make sure interrupts are re-enabled for the PHY */
> if (phydev->irq != PHY_POLL) {
> err = phy_enable_interrupts(phydev);
> if (err < 0)
> break;
> }
>
> phydev->state = PHY_RESUMING;
> do_resume = true;
> break;
>
> which is what re-enables interrupts and makes sure the PHY is resumed,
> right?
>
> If that's the scenario, I guess:
>
> Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>

And almost forgot:

Fixes: 00db8189d984 ("This patch adds a PHY Abstraction Layer to the
Linux Kernel, enabling ethernet drivers to remain as ignorant as is
reasonable of the connected PHY's design and operation details.")
--
Florian