NOTE: can someone relay me the original patch in this thread or cross-post it to linux-kernel since that is where it obviously needs to be discussed? I'm not on alsa-devel... (OK I will subscribe...)
On Tue, Sep 25, 2012 at 1:24 PM, Peter Ujfalusi peter.ujfalusi@ti.com wrote:
But the pinctrl could be used to change the mux runtime. For example in OMAP for most of the audio related pins we need to select MODE0 mux configuration in order to route the signal to the pin. However the same pin can be configured to SAFE_MODE which disconnects the pin from outside. During audio activity we obviously need to configure these pins to MODE0 but when there is not activity we could set them to SAFE_MODE which could result some power savings (preventing leakage, etc).
For this to work it would be ideal to use the pm_runtime as a centralized place to handle clocks, pinctrl, etc...
So this is exactly what we are doing for the ux500 and implementing in most of the AMBA devs.
We even have standard names for it in the pinctrl subsystem - the modes named "default" and "sleep" or maybe "idle" if you also have a separate "sleep" state apart from the relaxed state. (include/linux/pinctrl/pinctrl-state.h).
So we go into "default" when the device is in use and relax it by going into "sleep" whenever we can.
But again, what to do with the cases when this is not needed (the pinctrl part for the devices)?
This is too unspecific for me, sorry... are you thinking about Stephen's preference to do this using hogs or of systems not using pinctrl at all? (They should be safe since not configuring pinctrl means it gets stubbed out.)
Yours, Linus Walleij