On 04.06.2018 23:48, Andrew Lunn wrote:
> On Sat, Jun 02, 2018 at 10:33:36PM +0200, Heiner Kallweit wrote:
>> Current implementation of MDIO bus PM ops doesn't actually implement
>> bus-specific PM ops but just calls PM ops defined on a device level
>> what doesn't seem to be fully in line with the core PM model.
>>
>> When looking e.g. at __device_suspend() the PM core looks for PM ops
>> of a device in a specific order:
>> 1. device PM domain
>> 2. device type
>> 3. device class
>> 4. device bus
>>
>> I think it has good reason that there's no PM ops on device level.
>> The situation can be improved by modeling PHY's as device type of
>> a MDIO device. If for some other type of MDIO device PM ops are
>> needed, it could be modeled as struct device_type as well.
> 
> Hi Heiner
> 
> I tested that the files in /sys/class/bus/mdio/devices/* are still
> there. And also not there for MDIO devices which are not PHYs,
> e.g. Ethernet switches.
> 
> I don't have any boards which do PM. So i cannot test suspend/resume.
> 
Thanks for reviewing! I tested suspend / resume by manually suspending
via "systemctl suspend" and resuming via power button or WoL.

The only behavior change I expect is an additional parameter in the PHY
udev calls, see following comment in device.h: If "name" is specified,
the uevent will contain it in the DEVTYPE variable.
This however shouldn't have any impact.

Heiner

> I also took a look at drivers/net/dsa/qca8k.c. This is an MDIO switch
> which has PM operations. I don't think this change will break it.
> 
> I would prefer a bit more testing, but i guess that is what -rc
> kernels are for.
> 
> Tested-by: Andrew Lunn <and...@lunn.ch>
> 
>     Andrew
> .
> 

Reply via email to