On Tue, Aug 25, 2020 at 3:59 PM Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> wrote: > > Adding separate PM operations vector for the software nodes. > The software node specific PM operations make it possible to > handle most PM related quirks separately in their own > functions instead of conditionally in the device driver's > generic PM functions (and in some cases all over the > driver). The software node specific PM operations will also > reduce the need to pass platform data in some cases, for > example from a core MFD driver to the child device drivers, > as from now on the core MFD driver will be able to implement > the PM quirks directly for the child devices without the > need to touch the drivers of those child devices. > > If a software node includes the PM operations, those PM > operations are always executed separately on top of the > other PM operations of the device, so the software node will > never replace any of the "normal" PM operations of the > device (including the PM domain's operations, class's or > bus's PM operations, the device drivers own operations, or > any other). This isn't consistent with the code changes AFAICS. The swnode PM operations are implemented as a PM domain ops, which means that they will be executed instead of any other existing ops rather than in addition to those. For example, software_node_prepare() will skip bus type ops if they are present and there is no "primary" PM domain which seems not intended. Also some comments might help to understand the design. Cheers!