ASoC: dapm: Avoid static route b/w cpu and codec dai

Currently ASoC core creates a static route b/w
playback/capture widgets of cpu and codec dai
if they are part of the same dai-link. However
this will cause codec path to get powered up
followed by the backend dai start during device
switch use-case where the front-end is not closed,
leading to audio playback failure if either bit-width
or sample rate is different.

Change-Id: Icd17677a73fdc4bd30e0918fcaa7e7f394245685
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
This commit is contained in:
Sudheer Papothi 2019-05-29 04:24:56 +05:30 • committed by Meng Wang
commit 0f8ec71b56
2 changed files with 8 additions and 0 deletions

View file

@ -842,6 +842,10 @@ struct snd_soc_dai_link {
/* This DAI link can route to other DAI links at runtime (Frontend)*/
unsigned int dynamic:1;
#ifdef CONFIG_AUDIO_QGKI
/* This DAI link can be reconfigured at runtime (Backend) */
unsigned int dynamic_be:1;
#endif
/* DPCM capture and Playback support */
unsigned int dpcm_capture:1;
unsigned int dpcm_playback:1;

View file

@ -4414,7 +4414,11 @@ void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card)
* dynamic FE links have no fixed DAI mapping.
* CODEC<->CODEC links have no direct connection.
*/
#ifdef CONFIG_AUDIO_QGKI
if (rtd->dai_link->dynamic || rtd->dai_link->dynamic_be)
#else
if (rtd->dai_link->dynamic)
#endif
continue;
dapm_connect_dai_link_widgets(card, rtd);