diff options
author | Axel Lin <axel.lin@gmail.com> | 2010-11-30 02:34:11 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-30 06:35:07 -0500 |
commit | 551102762ebe8bc0aa867d28960d9be97bbe17c1 (patch) | |
tree | 6ee4e73762c34f48bfc850fe2adb472f6f07fc2f /sound/soc/codecs | |
parent | c8d6bf9a7b282255cd155b676ff91b08266b8529 (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/soc/codecs')
-rw-r--r-- | sound/soc/codecs/88pm860x-codec.c | 12 |
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) | |||
1358 | pm860x->name[i], pm860x); | 1358 | pm860x->name[i], pm860x); |
1359 | if (ret < 0) { | 1359 | if (ret < 0) { |
1360 | dev_err(codec->dev, "Failed to request IRQ!\n"); | 1360 | dev_err(codec->dev, "Failed to request IRQ!\n"); |
1361 | goto out_irq; | 1361 | goto out; |
1362 | } | 1362 | } |
1363 | } | 1363 | } |
1364 | 1364 | ||
@@ -1369,7 +1369,7 @@ static int pm860x_probe(struct snd_soc_codec *codec) | |||
1369 | if (ret < 0) { | 1369 | if (ret < 0) { |
1370 | dev_err(codec->dev, "Failed to fill register cache: %d\n", | 1370 | dev_err(codec->dev, "Failed to fill register cache: %d\n", |
1371 | ret); | 1371 | ret); |
1372 | goto out_codec; | 1372 | goto out; |
1373 | } | 1373 | } |
1374 | 1374 | ||
1375 | snd_soc_add_controls(codec, pm860x_snd_controls, | 1375 | snd_soc_add_controls(codec, pm860x_snd_controls, |
@@ -1379,12 +1379,10 @@ static int pm860x_probe(struct snd_soc_codec *codec) | |||
1379 | snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map)); | 1379 | snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map)); |
1380 | return 0; | 1380 | return 0; |
1381 | 1381 | ||
1382 | out_codec: | 1382 | out: |
1383 | i = 3; | 1383 | while (--i >= 0) |
1384 | out_irq: | ||
1385 | for (; i >= 0; i--) | ||
1386 | free_irq(pm860x->irq[i], pm860x); | 1384 | free_irq(pm860x->irq[i], pm860x); |
1387 | return -EINVAL; | 1385 | return ret; |
1388 | } | 1386 | } |
1389 | 1387 | ||
1390 | static int pm860x_remove(struct snd_soc_codec *codec) | 1388 | static int pm860x_remove(struct snd_soc_codec *codec) |