On Wed, Oct 24, 2018 at 06:01:16PM -0700, Nicolin Chen wrote: > On Thu, Oct 25, 2018 at 12:13:01AM +0000, linux@xxxxxxxxxxxx wrote: > > > > + if (dev) { > > > + hdev->driver = dev->driver; > > > + hdev->power = dev->power; > > > + hdev->pm_domain = dev->pm_domain; > > > + hdev->of_node = dev->of_node; > > > + } > > > > We'l need to dig into this more; I suspect it may be inappropriate to do this. > > With this change, every hwmon driver supporting (runtime ?) suspend/resume > > will have the problem worked around in #5, and that just seems wrong. > > Hmm..that's true...thanks for catching it. > > Actually I am not sure the reason of having a child device in > the core, but could we use the parent dev pointer in the hwmon > core as hwmon_dev upon confirming parent dev pointer != NULL? I just noticed that it is used to link to hwmon class. So this won't work then. I guess it'd be safer to ignore the problem of the power node, i.e. using parent dev pointer for pm runtime. Thanks Nicolin > The problem here is that the power directory under each hwmon > directory is tied to the hwmon_dev pointer, not to the parent > dev pointer, and the hwmon core creates all sysfs nodes based > on the child node. So those nodes under power directory won't > be valid unless we copy all pm information, especially PM ops. > > There is an option of ignoring this problem though, while all > hwmon drivers will need to be careful of mixing using the dev > pointers. So it'd be a lot of easier if we could just use the > original dev pointer in the core since we mainly just need to > create sysfs nodes. > > Another way of doing this might be to pass down the PM pointer > via _info structure instead of linking it to the parent driver, > which then will forbid all hwmon drivers having its own PM ops > callbacks -- the very opposite way of this patch, and it does > not sound fully reasonable and feasible to me... > > What do you think about? > > Thanks > Nicolin