[alsa-devel] [PATCH] ASoC: tpa6130a2: Fix unbalanced regulator disables
Takashi Iwai
tiwai at suse.de
Wed Nov 3 15:00:12 CET 2010
At Thu, 28 Oct 2010 14:05:40 +0300,
Jarkko Nikula wrote:
>
> This driver has unbalanced regulator_disable when doing module loading and
> unloading. This is because tpa6130a2_probe followed by tpa6130a2_remove
> calls twice tpa6130a2_power(0). Fix this by implementing a state checking
> in tpa6130a2_power.
>
> Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> Cc: Peter Ujfalusi <peter.ujfalusi at nokia.com>
> ---
> sound/soc/codecs/tpa6130a2.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/codecs/tpa6130a2.c b/sound/soc/codecs/tpa6130a2.c
> index 329acc1..83b5631 100644
> --- a/sound/soc/codecs/tpa6130a2.c
> +++ b/sound/soc/codecs/tpa6130a2.c
> @@ -125,7 +125,7 @@ static int tpa6130a2_power(int power)
> data = i2c_get_clientdata(tpa6130a2_client);
>
> mutex_lock(&data->mutex);
> - if (power) {
> + if (power && !data->power_state) {
> /* Power on */
> if (data->power_gpio >= 0)
> gpio_set_value(data->power_gpio, 1);
> @@ -153,7 +153,7 @@ static int tpa6130a2_power(int power)
> val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
> val &= ~TPA6130A2_SWS;
> tpa6130a2_i2c_write(TPA6130A2_REG_CONTROL, val);
> - } else {
> + } else if (!power && data->power_state) {
> /* set SWS */
> val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
> val |= TPA6130A2_SWS;
This seems triggering a compile warning:
sound/soc/codecs/tpa6130a2.c:122:6: warning: ‘ret’ may be used uninitialized in this function
Takashi
More information about the Alsa-devel
mailing list