diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-05-14 08:23:48 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-05-14 08:23:48 -0400 |
commit | 927cdab3b6fe7e32990f5563d295eedfc355be6d (patch) | |
tree | 15923aeddbef73e103a96799af36fca56aff4e56 | |
parent | 7189eb9b8f7962474956196c301676470542f253 (diff) | |
parent | cf86197ec5655ed1f54f1f7ba34a01d576e3737d (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-- | MAINTAINERS | 6 | ||||
-rw-r--r-- | sound/soc/soc-dapm.c | 14 | ||||
-rw-r--r-- | sound/soc/soc-pcm.c | 2 |
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 | |||
2245 | S: Maintained | 2245 | S: Maintained |
2246 | F: drivers/usb/host/ohci-ep93xx.c | 2246 | F: drivers/usb/host/ohci-ep93xx.c |
2247 | 2247 | ||
2248 | CIRRUS LOGIC CS4270 SOUND DRIVER | ||
2249 | M: Timur Tabi <timur@tabi.org> | ||
2250 | L: alsa-devel@alsa-project.org (moderated for non-subscribers) | ||
2251 | S: Odd Fixes | ||
2252 | F: sound/soc/codecs/cs4270* | ||
2253 | |||
2254 | CIRRUS LOGIC AUDIO CODEC DRIVERS | 2248 | CIRRUS LOGIC AUDIO CODEC DRIVERS |
2255 | M: Brian Austin <brian.austin@cirrus.com> | 2249 | M: Brian Austin <brian.austin@cirrus.com> |
2256 | M: Paul Handrigan <Paul.Handrigan@cirrus.com> | 2250 | M: 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)) |