[alsa-devel] [PATCH 04/11] ASoC: rt5651: Simplify set_bias_level()

Hans de Goede hdegoede at redhat.com
Wed Feb 21 21:11:34 CET 2018


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


More information about the Alsa-devel mailing list