ASoC: Improve WM8994 digital power sequencing
On WM8994 revision D and earlier ensure optimal sequencing with simultaneous usage of AIF1 and AIF2 by tying the signals together so if paths through both are connected the streams are started simultaneously. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
This commit is contained in:
parent
7f94de483f
commit
6ed8f1485f
|
@ -1584,6 +1584,13 @@ static const struct snd_soc_dapm_route intercon[] = {
|
||||||
{ "Right Headphone Mux", "DAC", "DAC1R" },
|
{ "Right Headphone Mux", "DAC", "DAC1R" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct snd_soc_dapm_route wm8994_revd_intercon[] = {
|
||||||
|
{ "AIF1DACDAT", NULL, "AIF2DACDAT" },
|
||||||
|
{ "AIF2DACDAT", NULL, "AIF1DACDAT" },
|
||||||
|
{ "AIF1ADCDAT", NULL, "AIF2ADCDAT" },
|
||||||
|
{ "AIF2ADCDAT", NULL, "AIF1ADCDAT" },
|
||||||
|
};
|
||||||
|
|
||||||
static const struct snd_soc_dapm_route wm8994_intercon[] = {
|
static const struct snd_soc_dapm_route wm8994_intercon[] = {
|
||||||
{ "AIF2DACL", NULL, "AIF2DAC Mux" },
|
{ "AIF2DACL", NULL, "AIF2DAC Mux" },
|
||||||
{ "AIF2DACR", NULL, "AIF2DAC Mux" },
|
{ "AIF2DACR", NULL, "AIF2DAC Mux" },
|
||||||
|
@ -3135,6 +3142,11 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
||||||
case WM8994:
|
case WM8994:
|
||||||
snd_soc_dapm_add_routes(dapm, wm8994_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8994_intercon,
|
||||||
ARRAY_SIZE(wm8994_intercon));
|
ARRAY_SIZE(wm8994_intercon));
|
||||||
|
|
||||||
|
if (wm8994->revision < 4)
|
||||||
|
snd_soc_dapm_add_routes(dapm, wm8994_revd_intercon,
|
||||||
|
ARRAY_SIZE(wm8994_revd_intercon));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case WM8958:
|
case WM8958:
|
||||||
snd_soc_dapm_add_routes(dapm, wm8958_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8958_intercon,
|
||||||
|
|
Loading…
Reference in a new issue