summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2010-11-30 15:34:11 +0800
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-30 11:35:07 +0000
commit551102762ebe8bc0aa867d28960d9be97bbe17c1 (patch)
tree6ee4e73762c34f48bfc850fe2adb472f6f07fc2f /sound
parentc8d6bf9a7b282255cd155b676ff91b08266b8529 (diff)
ASoC: Simplify pm860x_probe error handling
Simplify pm860x_probe error handling and return actual error code we got. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/88pm860x-codec.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sound/soc/codecs/88pm860x-codec.c b/sound/soc/codecs/88pm860x-codec.c
index 7e4d88007d4f..08e15dee9182 100644
--- a/sound/soc/codecs/88pm860x-codec.c
+++ b/sound/soc/codecs/88pm860x-codec.c
@@ -1358,7 +1358,7 @@ static int pm860x_probe(struct snd_soc_codec *codec)
pm860x->name[i], pm860x);
if (ret < 0) {
dev_err(codec->dev, "Failed to request IRQ!\n");
- goto out_irq;
+ goto out;
}
}
@@ -1369,7 +1369,7 @@ static int pm860x_probe(struct snd_soc_codec *codec)
if (ret < 0) {
dev_err(codec->dev, "Failed to fill register cache: %d\n",
ret);
- goto out_codec;
+ goto out;
}
snd_soc_add_controls(codec, pm860x_snd_controls,
@@ -1379,12 +1379,10 @@ static int pm860x_probe(struct snd_soc_codec *codec)
snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));
return 0;
-out_codec:
- i = 3;
-out_irq:
- for (; i >= 0; i--)
+out:
+ while (--i >= 0)
free_irq(pm860x->irq[i], pm860x);
- return -EINVAL;
+ return ret;
}
static int pm860x_remove(struct snd_soc_codec *codec)