On Tue, Nov 17, 2009 at 09:46:35PM +0900, Magnus Damm wrote:
On SuperH we have Runtime PM enabled on a few platforms together with a few updated drivers. The latest driver to become more power aware is this FSI driver.
I understand exactly what the runtime PM stuff and the driver are doing here, the issue is the mandatory suspend and resume functions.
At this point the SuperH specific platform bus code requires the callbacks ->runtime_suspend() and ->runtime_resume() to be present. It may be a good idea to allow them to be NULL in the future or maybe having some shared functions, but before starting to break out stuff I'd like to see how other Runtime PM implementations deal with this. So unless people object I prefer to keep it as-is for now.
What is the reason for requiring that the driver provide stub functions? For me the issue is that if it's mandatory for the driver to provide the functions then having stub functions in there makes the driver look like it is abusing the API by not implementing mandatory functionality.
Given that the arch is now dealing with clocking and power for the device using the runtime PM system it seems fairly clear that there are going to be drivers like this one that can at least skip the suspend part and may not need to do anything at resume time either.