Skip to content

Commit

Permalink
ASoC: tlv320adc3xxx: Fix buggy return value
Browse files Browse the repository at this point in the history
snd_soc_component_update_bits returns 1 if the operation was
successful and some bits were changed, so we cannot
return this value directly as it can be interpreted
as an error. Instead, do some minor mangling to avoid
inadvertently returning an error.

Signed-off-by: Ricard Wanderlof <ricardw@axis.com>
Link: https://lore.kernel.org/r/alpine.DEB.2.21.2202241021420.20760@lnxricardw1.se.axis.com
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Ricard Wanderlof authored and broonie committed Feb 24, 2022
1 parent c07ac3e commit eb8b5af
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions sound/soc/codecs/tlv320adc3xxx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1111,6 +1111,7 @@ static int adc3xxx_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
struct adc3xxx *adc3xxx = snd_soc_component_get_drvdata(component);
u8 clkdir = 0, format = 0;
int master = 0;
int ret;

/* set master/slave audio interface */
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
Expand Down Expand Up @@ -1161,10 +1162,13 @@ static int adc3xxx_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
adc3xxx->master = master;

/* set clock direction and format */
return snd_soc_component_update_bits(component,
ADC3XXX_INTERFACE_CTRL_1,
ADC3XXX_CLKDIR_MASK | ADC3XXX_FORMAT_MASK,
clkdir | format);
ret = snd_soc_component_update_bits(component,
ADC3XXX_INTERFACE_CTRL_1,
ADC3XXX_CLKDIR_MASK | ADC3XXX_FORMAT_MASK,
clkdir | format);
if (ret < 0)
return ret;
return 0;
}

static const struct snd_soc_dai_ops adc3xxx_dai_ops = {
Expand Down

0 comments on commit eb8b5af

Please sign in to comment.