On Tue, Nov 17, 2009 at 9:59 PM, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
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.
Cool, but don't you think it makes sense to see how other architectures will deal with this first?
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.
I see your point, but there is another side to it as well. Having the stubs there is a way of showing that these functions may be called as part of the Runtime PM management. Not having them would confuse people even more IMO.
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.
Right. We just need to figure out what the arch-independent solution would be, and we're unfortunately not there yet.
I can spend some time on updating the drivers and removing the nop-stubs if you'd like, but I'd rather not since I suspect that I'll have to update things again when we get Runtime PM for ARM or other non-sh architectures.
Let me know what you think!
/ magnus