aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-05-14 08:23:48 -0400
committerTakashi Iwai <tiwai@suse.de>2014-05-14 08:23:48 -0400
commit927cdab3b6fe7e32990f5563d295eedfc355be6d (patch)
tree15923aeddbef73e103a96799af36fca56aff4e56
parent7189eb9b8f7962474956196c301676470542f253 (diff)
parentcf86197ec5655ed1f54f1f7ba34a01d576e3737d (diff)
Merge tag 'asoc-v3.15-rc5-core' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Core fixes for v3.15 A few things here: - Fix the creation of spurious CODEC<->CODEC links which caused DAPM to have audio paths which shouldn't be present causing spurious powerups and potential audible issues for users. - Ensure the suspend->off transition doesn't have spurious transitions to prepare added to the sequence. - Fix incorrect skipping of PCM suspension for active audio streams. - Remove Timur Tabi from the CS4270 maintainers, Cirrus are now doing this and Timur no longer has the boards that he was using.
-rw-r--r--MAINTAINERS6
-rw-r--r--sound/soc/soc-dapm.c14
-rw-r--r--sound/soc/soc-pcm.c2
3 files changed, 11 insertions, 11 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index e67ea2442041..ab0baf71f931 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2245,12 +2245,6 @@ L: linux-usb@vger.kernel.org
2245S: Maintained 2245S: Maintained
2246F: drivers/usb/host/ohci-ep93xx.c 2246F: drivers/usb/host/ohci-ep93xx.c
2247 2247
2248CIRRUS LOGIC CS4270 SOUND DRIVER
2249M: Timur Tabi <timur@tabi.org>
2250L: alsa-devel@alsa-project.org (moderated for non-subscribers)
2251S: Odd Fixes
2252F: sound/soc/codecs/cs4270*
2253
2254CIRRUS LOGIC AUDIO CODEC DRIVERS 2248CIRRUS LOGIC AUDIO CODEC DRIVERS
2255M: Brian Austin <brian.austin@cirrus.com> 2249M: Brian Austin <brian.austin@cirrus.com>
2256M: Paul Handrigan <Paul.Handrigan@cirrus.com> 2250M: Paul Handrigan <Paul.Handrigan@cirrus.com>
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 7769b0a2bc5a..6d6ceee447d5 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -1612,8 +1612,11 @@ static void dapm_pre_sequence_async(void *data, async_cookie_t cookie)
1612 "ASoC: Failed to turn on bias: %d\n", ret); 1612 "ASoC: Failed to turn on bias: %d\n", ret);
1613 } 1613 }
1614 1614
1615 /* Prepare for a STADDBY->ON or ON->STANDBY transition */ 1615 /* Prepare for a transition to ON or away from ON */
1616 if (d->bias_level != d->target_bias_level) { 1616 if ((d->target_bias_level == SND_SOC_BIAS_ON &&
1617 d->bias_level != SND_SOC_BIAS_ON) ||
1618 (d->target_bias_level != SND_SOC_BIAS_ON &&
1619 d->bias_level == SND_SOC_BIAS_ON)) {
1617 ret = snd_soc_dapm_set_bias_level(d, SND_SOC_BIAS_PREPARE); 1620 ret = snd_soc_dapm_set_bias_level(d, SND_SOC_BIAS_PREPARE);
1618 if (ret != 0) 1621 if (ret != 0)
1619 dev_err(d->dev, 1622 dev_err(d->dev,
@@ -3475,8 +3478,11 @@ void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card)
3475 cpu_dai = rtd->cpu_dai; 3478 cpu_dai = rtd->cpu_dai;
3476 codec_dai = rtd->codec_dai; 3479 codec_dai = rtd->codec_dai;
3477 3480
3478 /* dynamic FE links have no fixed DAI mapping */ 3481 /*
3479 if (rtd->dai_link->dynamic) 3482 * dynamic FE links have no fixed DAI mapping.
3483 * CODEC<->CODEC links have no direct connection.
3484 */
3485 if (rtd->dai_link->dynamic || rtd->dai_link->params)
3480 continue; 3486 continue;
3481 3487
3482 /* there is no point in connecting BE DAI links with dummies */ 3488 /* there is no point in connecting BE DAI links with dummies */
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 2cedf09f6d96..a391de058037 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1675,7 +1675,7 @@ int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream,
1675 be->dpcm[stream].state = SND_SOC_DPCM_STATE_STOP; 1675 be->dpcm[stream].state = SND_SOC_DPCM_STATE_STOP;
1676 break; 1676 break;
1677 case SNDRV_PCM_TRIGGER_SUSPEND: 1677 case SNDRV_PCM_TRIGGER_SUSPEND:
1678 if (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) 1678 if (be->dpcm[stream].state != SND_SOC_DPCM_STATE_START)
1679 continue; 1679 continue;
1680 1680
1681 if (!snd_soc_dpcm_can_be_free_stop(fe, be, stream)) 1681 if (!snd_soc_dpcm_can_be_free_stop(fe, be, stream))