ASoC: Create an AIF1ADCDAT signal widget to match AIF2
Subsystems (3)
PATCH 1/2 ASoC: Create an AIF1ADCDAT signal widget to match AIF2
From: Mark Brown <[email protected]>
Due to the different routing for AIF1 and AIF2 we weren't using a single widget to represent the ADCDAT signal. For consistency add one.
Signed-off-by Mark Brown <[email protected]>
--- sound/soc/codecs/wm8994.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)
sound/soc/codecs/wm8994.c +10 -4
@@ -1287,9 +1287,9 @@ SND_SOC_DAPM_SUPPLY("DSPINTCLK", WM8994_CLOCKING_1, 1, 0, NULL, 0),SND_SOC_DAPM_SUPPLY ("AIF1CLK" ,WM8994_AIF1_CLOCKING_1 ,0 ,0 ,NULL ,0 ),SND_SOC_DAPM_SUPPLY ("AIF2CLK" ,WM8994_AIF2_CLOCKING_1 ,0 ,0 ,NULL ,0 ), -SND_SOC_DAPM_AIF_OUT ("AIF1ADC1L" ,"AIF1 Capture" , +SND_SOC_DAPM_AIF_OUT ("AIF1ADC1L" ,NULL ,0 ,WM8994_POWER_MANAGEMENT_4 ,9 ,0 ), -SND_SOC_DAPM_AIF_OUT ("AIF1ADC1R" ,"AIF1 Capture" , +SND_SOC_DAPM_AIF_OUT ("AIF1ADC1R" ,NULL ,0 ,WM8994_POWER_MANAGEMENT_4 ,8 ,0 ), SND_SOC_DAPM_AIF_IN_E("AIF1DAC1L", NULL, 0, WM8994_POWER_MANAGEMENT_5, 9, 0, wm8958_aif_ev,
@@ -1298,9 +1298,9 @@ SND_SOC_DAPM_AIF_IN_E("AIF1DAC1R", NULL, 0, WM8994_POWER_MANAGEMENT_5, 8, 0, wm8958_aif_ev, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), -SND_SOC_DAPM_AIF_OUT ("AIF1ADC2L" ,"AIF1 Capture" , +SND_SOC_DAPM_AIF_OUT ("AIF1ADC2L" ,NULL ,0 ,WM8994_POWER_MANAGEMENT_4 ,11 ,0 ), -SND_SOC_DAPM_AIF_OUT ("AIF1ADC2R" ,"AIF1 Capture" , +SND_SOC_DAPM_AIF_OUT ("AIF1ADC2R" ,NULL ,0 ,WM8994_POWER_MANAGEMENT_4 ,10 ,0 ), SND_SOC_DAPM_AIF_IN_E("AIF1DAC2L", NULL, 0, WM8994_POWER_MANAGEMENT_5, 11, 0, wm8958_aif_ev,
@@ -1345,6 +1345,7 @@ SND_SOC_DAPM_AIF_IN_E("AIF2DACR", NULL, 0,SND_SOC_DAPM_AIF_IN ("AIF1DACDAT" ,"AIF1 Playback" ,0 ,SND_SOC_NOPM ,0 ,0 ),SND_SOC_DAPM_AIF_IN ("AIF2DACDAT" ,"AIF2 Playback" ,0 ,SND_SOC_NOPM ,0 ,0 ), +SND_SOC_DAPM_AIF_OUT ("AIF1ADCDAT" ,"AIF1 Capture" ,0 ,SND_SOC_NOPM ,0 ,0 ),SND_SOC_DAPM_AIF_OUT ("AIF2ADCDAT" ,"AIF2 Capture" ,0 ,SND_SOC_NOPM ,0 ,0 ), SND_SOC_DAPM_MUX("AIF1DAC Mux", SND_SOC_NOPM, 0, 0, &aif1dac_mux),
@@ -1546,6 +1547,11 @@ static const struct snd_soc_dapm_route intercon[] = { { "AIF2DAC2R Mixer", "Left Sidetone Switch", "Left Sidetone" }, { "AIF2DAC2R Mixer", "Right Sidetone Switch", "Right Sidetone" }, + { "AIF1ADCDAT", NULL, "AIF1ADC1L" }, + { "AIF1ADCDAT", NULL, "AIF1ADC1R" }, + { "AIF1ADCDAT", NULL, "AIF1ADC2L" }, + { "AIF1ADCDAT", NULL, "AIF1ADC2R" }, + { "AIF2ADCDAT", NULL, "AIF2ADC Mux" }, /* AIF3 output */
Signature · 1 line
1.7.3.5
PATCH 2/2 ASoC: Improve WM8994 digital power sequencing
From: Mark Brown <[email protected]>
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 <[email protected]>
--- sound/soc/codecs/wm8994.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)
sound/soc/codecs/wm8994.c +12 -0
@@ -1584,6 +1584,13 @@ static const struct snd_soc_dapm_route intercon[] = { { "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[] = { {"AIF2DACL" ,NULL ,"AIF2DAC Mux" }, { "AIF2DACR", NULL, "AIF2DAC Mux" },
@@ -3135,6 +3142,11 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)case WM8994 :snd_soc_dapm_add_routes (dapm, 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 ;case WM8958 : snd_soc_dapm_add_routes(dapm, wm8958_intercon,
Signature · 1 line
1.7.3.5
Quoted 8 lines · Dimitris Papastamos
From: Mark Brown <[email protected]>
Due to the different routing for AIF1 and AIF2 we weren't using a single widget to represent the ADCDAT signal. For consistency add one.
Signed-off-by Mark Brown <[email protected]>---
Both
Acked-by Liam Girdwood <[email protected]>
Signature · 3 lines
Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk