aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)