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@xxxxxxxxx> > Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxx> > --- > 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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel