On Tue, Sep 08, 2015 at 11:14:09AM +0100, Nikesh Oswal wrote:
When regulator is defined with SND_SOC_DAPM_REGULATOR_CONTROL_BYPASS flag, then a kcontrol will be created which can be used to switch regulator to regulated/bypass state. This will help to control the behaviour of the regulator based on a usecase. For example voice call may need a regulated voltage to acheive higher quality whereas voice trigger may need bypass voltage so as to save on power.
This is really not a good idea, moving a regulator from regulated to bypass without coordination with the driver is a recipie for bugs at best and physical damage at worst. It's something that should be being done by the device driver based on the current state of the device, the general model is that we always drive to the lowest power state possible based on what the device is currently doing. If the device is set up to do something that can use an unregulated supply then it should put the supply into bypass mode without any help from userspace.
As I think we went through the last time you submitted code to the core it is very important that we have coherent and safe abstractions that result in code which does what it says. The code in the core has to work coherently for everyone, just randomly punching holes through abstractions for system specific hacks from userspace is not going to do that.