diff options
-rw-r--r-- | sound/soc/codecs/wm5102.c | 7 | ||||
-rw-r--r-- | sound/soc/codecs/wm5110.c | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/sound/soc/codecs/wm5102.c b/sound/soc/codecs/wm5102.c index 6ddee999bc51..64637d1cf4e5 100644 --- a/sound/soc/codecs/wm5102.c +++ b/sound/soc/codecs/wm5102.c | |||
@@ -1879,7 +1879,7 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec) | |||
1879 | ret = snd_soc_add_codec_controls(codec, | 1879 | ret = snd_soc_add_codec_controls(codec, |
1880 | arizona_adsp2_rate_controls, 1); | 1880 | arizona_adsp2_rate_controls, 1); |
1881 | if (ret) | 1881 | if (ret) |
1882 | return ret; | 1882 | goto err_adsp2_codec_probe; |
1883 | 1883 | ||
1884 | arizona_init_spk(codec); | 1884 | arizona_init_spk(codec); |
1885 | arizona_init_gpio(codec); | 1885 | arizona_init_gpio(codec); |
@@ -1889,6 +1889,11 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec) | |||
1889 | priv->core.arizona->dapm = dapm; | 1889 | priv->core.arizona->dapm = dapm; |
1890 | 1890 | ||
1891 | return 0; | 1891 | return 0; |
1892 | |||
1893 | err_adsp2_codec_probe: | ||
1894 | wm_adsp2_codec_remove(&priv->core.adsp[0], codec); | ||
1895 | |||
1896 | return ret; | ||
1892 | } | 1897 | } |
1893 | 1898 | ||
1894 | static int wm5102_codec_remove(struct snd_soc_codec *codec) | 1899 | static int wm5102_codec_remove(struct snd_soc_codec *codec) |
diff --git a/sound/soc/codecs/wm5110.c b/sound/soc/codecs/wm5110.c index 05aa5bca97cf..2d1168c768d9 100644 --- a/sound/soc/codecs/wm5110.c +++ b/sound/soc/codecs/wm5110.c | |||
@@ -1607,18 +1607,24 @@ static int wm5110_codec_probe(struct snd_soc_codec *codec) | |||
1607 | for (i = 0; i < WM5110_NUM_ADSP; ++i) { | 1607 | for (i = 0; i < WM5110_NUM_ADSP; ++i) { |
1608 | ret = wm_adsp2_codec_probe(&priv->core.adsp[i], codec); | 1608 | ret = wm_adsp2_codec_probe(&priv->core.adsp[i], codec); |
1609 | if (ret) | 1609 | if (ret) |
1610 | return ret; | 1610 | goto err_adsp2_codec_probe; |
1611 | } | 1611 | } |
1612 | 1612 | ||
1613 | ret = snd_soc_add_codec_controls(codec, | 1613 | ret = snd_soc_add_codec_controls(codec, |
1614 | arizona_adsp2_rate_controls, | 1614 | arizona_adsp2_rate_controls, |
1615 | WM5110_NUM_ADSP); | 1615 | WM5110_NUM_ADSP); |
1616 | if (ret) | 1616 | if (ret) |
1617 | return ret; | 1617 | goto err_adsp2_codec_probe; |
1618 | 1618 | ||
1619 | snd_soc_dapm_disable_pin(dapm, "HAPTICS"); | 1619 | snd_soc_dapm_disable_pin(dapm, "HAPTICS"); |
1620 | 1620 | ||
1621 | return 0; | 1621 | return 0; |
1622 | |||
1623 | err_adsp2_codec_probe: | ||
1624 | for (--i; i >= 0; --i) | ||
1625 | wm_adsp2_codec_remove(&priv->core.adsp[i], codec); | ||
1626 | |||
1627 | return ret; | ||
1622 | } | 1628 | } |
1623 | 1629 | ||
1624 | static int wm5110_codec_remove(struct snd_soc_codec *codec) | 1630 | static int wm5110_codec_remove(struct snd_soc_codec *codec) |