aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2010-11-30 02:34:11 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-30 06:35:07 -0500
commit551102762ebe8bc0aa867d28960d9be97bbe17c1 (patch)
tree6ee4e73762c34f48bfc850fe2adb472f6f07fc2f /sound/soc/codecs
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/soc/codecs')
-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)
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
1382out_codec: 1382out:
1383 i = 3; 1383 while (--i >= 0)
1384out_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
1390static int pm860x_remove(struct snd_soc_codec *codec) 1388static int pm860x_remove(struct snd_soc_codec *codec)