Hi,
On 21-02-18 12:43, Mark Brown wrote:
On Tue, Feb 20, 2018 at 11:15:04PM +0100, Hans de Goede wrote:
There is no need to set the LDO voltage to 1.2 volt each time we enter standby, instead always leave it 1.2 volt on BIAS_OFF. Note we do a snd_soc_codec_force_bias_level(BIAS_OFF) on probe, so this will configure it correctly right from the start.
That force on probe sounds like a problem... if this is being done once at startup it should be done in the probe function, not in the bias level configuration.
This is more like "we do a snd_soc_codec_force_bias_level(BIAS_OFF) on probe anyways and that already sets the level to 1.2 volt, so we don't need to do this explicitly at probe time".
Also, are you sure this is a good fix? If the bias voltage is being configured all the time does that perhaps indicate that for better performance or something it should have been being set to some other voltage when the device is in standby?
We switch the LDO off when in the bias level is BIAS_OFF and on at 1.2 volt when in standby or higher. Before this commit we would unconditionally write 0 to PWR_ANLG1 not only turning off all supplies, but additionally changing the LDO voltage control bits to 00, which requires reprogramming them when we go back to standby. The value of the LDO voltage controls bits when in BIAS_OFF does not matter as the LDO on/off bit is set to off, so the purpose of this commit is to replace the blindly setting of PWR_ANLG1 to 0 with setting all the bits in PWR_ANLG1 to 0, while leaving the 2 LDO voltage-control bits as-is, so that we don't need to reprogram these 2 bits when entering standby.
Regards,
Hans