> Devices may or may not be configured for runtime autosuspend, and perhaps > may not even use runtime PM. pm_runtime_enabled() and the autosuspend > configuration could be addressed by checking against > dev->power.use_autosuspend flag. But if the runtime PM functions are added > to the bit banging core, would it not restrict the usage of > pm_runtime_put_*() variants for others? My assumption is, any calls to pm_runtime_* functions will effectively do nothing if the driver does not have support for it. I could be wrong about this, and it jumps through a NULL pointer and explodes, but that would be a bad design. > There is atleast one device sh_eth, which is not configured for autosuspend > but uses the bit bang core in sh_mdiobb_read() and invokes regular runtime > PM functions. And that is the point of moving it into the core. It would of just worked for you. If you don't feel comfortable with making this unconditional, please put runtime pm enabled version of mdiobb_read/mdiobb_write() in the core and swap sh_eth and any other drivers to using them. Andrew