Then you should change the function the way I suggested. The PM core
will automatically do a runtime suspend after the system has fully
woken up.
Your approach will not work. You _must_ define runtime_idle() if you
want your driver to suspend correctly. It doesn't have to be
complicated; just make it call pm_runtime_suspend().
...
The problem is that the device can be runtime-resumed by code other
than your own, and that other code will not always do a runtime-suspend
afterward -- it will do a runtime-idle. That's why you need to define
a runtime_idle() callback.
Alan Stern
--