diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/sgtl5000.c | 2 | ||||
-rw-r--r-- | sound/soc/codecs/wm8993.c | 6 | ||||
-rw-r--r-- | sound/soc/imx/imx-pcm-dma-mx2.c | 12 | ||||
-rw-r--r-- | sound/soc/soc-core.c | 4 | ||||
-rw-r--r-- | sound/soc/soc-dapm.c | 2 |
5 files changed, 19 insertions, 7 deletions
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index d7bd91831611..f8863ebb4304 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c | |||
@@ -1457,5 +1457,5 @@ static void __exit sgtl5000_exit(void) | |||
1457 | module_exit(sgtl5000_exit); | 1457 | module_exit(sgtl5000_exit); |
1458 | 1458 | ||
1459 | MODULE_DESCRIPTION("Freescale SGTL5000 ALSA SoC Codec Driver"); | 1459 | MODULE_DESCRIPTION("Freescale SGTL5000 ALSA SoC Codec Driver"); |
1460 | MODULE_AUTHOR("Zeng Zhaoming <zhaoming.zeng@freescale.com>"); | 1460 | MODULE_AUTHOR("Zeng Zhaoming <zengzm.kernel@gmail.com>"); |
1461 | MODULE_LICENSE("GPL"); | 1461 | MODULE_LICENSE("GPL"); |
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c index 2b40c93601ed..7c7fd925db8d 100644 --- a/sound/soc/codecs/wm8993.c +++ b/sound/soc/codecs/wm8993.c | |||
@@ -444,6 +444,12 @@ static int _wm8993_set_fll(struct snd_soc_codec *codec, int fll_id, int source, | |||
444 | /* Enable the FLL */ | 444 | /* Enable the FLL */ |
445 | snd_soc_write(codec, WM8993_FLL_CONTROL_1, reg1 | WM8993_FLL_ENA); | 445 | snd_soc_write(codec, WM8993_FLL_CONTROL_1, reg1 | WM8993_FLL_ENA); |
446 | 446 | ||
447 | /* Both overestimates */ | ||
448 | if (Fref < 1000000) | ||
449 | msleep(3); | ||
450 | else | ||
451 | msleep(1); | ||
452 | |||
447 | dev_dbg(codec->dev, "FLL enabled at %dHz->%dHz\n", Fref, Fout); | 453 | dev_dbg(codec->dev, "FLL enabled at %dHz->%dHz\n", Fref, Fout); |
448 | 454 | ||
449 | wm8993->fll_fref = Fref; | 455 | wm8993->fll_fref = Fref; |
diff --git a/sound/soc/imx/imx-pcm-dma-mx2.c b/sound/soc/imx/imx-pcm-dma-mx2.c index aecdba9f65a1..5780c9b9d569 100644 --- a/sound/soc/imx/imx-pcm-dma-mx2.c +++ b/sound/soc/imx/imx-pcm-dma-mx2.c | |||
@@ -88,11 +88,13 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream, | |||
88 | iprtd->dma_data.dma_request = dma_params->dma; | 88 | iprtd->dma_data.dma_request = dma_params->dma; |
89 | 89 | ||
90 | /* Try to grab a DMA channel */ | 90 | /* Try to grab a DMA channel */ |
91 | dma_cap_zero(mask); | 91 | if (!iprtd->dma_chan) { |
92 | dma_cap_set(DMA_SLAVE, mask); | 92 | dma_cap_zero(mask); |
93 | iprtd->dma_chan = dma_request_channel(mask, filter, iprtd); | 93 | dma_cap_set(DMA_SLAVE, mask); |
94 | if (!iprtd->dma_chan) | 94 | iprtd->dma_chan = dma_request_channel(mask, filter, iprtd); |
95 | return -EINVAL; | 95 | if (!iprtd->dma_chan) |
96 | return -EINVAL; | ||
97 | } | ||
96 | 98 | ||
97 | switch (params_format(params)) { | 99 | switch (params_format(params)) { |
98 | case SNDRV_PCM_FORMAT_S16_LE: | 100 | case SNDRV_PCM_FORMAT_S16_LE: |
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 3986520b4677..b5ecf6d23214 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
@@ -907,6 +907,10 @@ static void soc_remove_dai_link(struct snd_soc_card *card, int num, int order) | |||
907 | if (err < 0) | 907 | if (err < 0) |
908 | printk(KERN_ERR "asoc: failed to remove %s\n", platform->name); | 908 | printk(KERN_ERR "asoc: failed to remove %s\n", platform->name); |
909 | } | 909 | } |
910 | |||
911 | /* Make sure all DAPM widgets are freed */ | ||
912 | snd_soc_dapm_free(&platform->dapm); | ||
913 | |||
910 | platform->probed = 0; | 914 | platform->probed = 0; |
911 | list_del(&platform->card_list); | 915 | list_del(&platform->card_list); |
912 | module_put(platform->dev->driver->owner); | 916 | module_put(platform->dev->driver->owner); |
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 3ad1f59b8028..1f55ded4047f 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -1426,7 +1426,7 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event) | |||
1426 | dapm->target_bias_level = SND_SOC_BIAS_ON; | 1426 | dapm->target_bias_level = SND_SOC_BIAS_ON; |
1427 | break; | 1427 | break; |
1428 | case SND_SOC_DAPM_STREAM_STOP: | 1428 | case SND_SOC_DAPM_STREAM_STOP: |
1429 | if (dapm->codec->active) | 1429 | if (dapm->codec && dapm->codec->active) |
1430 | dapm->target_bias_level = SND_SOC_BIAS_ON; | 1430 | dapm->target_bias_level = SND_SOC_BIAS_ON; |
1431 | else | 1431 | else |
1432 | dapm->target_bias_level = SND_SOC_BIAS_STANDBY; | 1432 | dapm->target_bias_level = SND_SOC_BIAS_STANDBY; |