Sort the remaining pieces of the DAPM driver so that they are all in the
same order among controls/widgets/routes, and so they roughly match the
register word and bit order of the hardware. This nicely separates the
AIF-related widgets from the ADC/DAC widgets, which allows the AIF
widgets to stay in a logical order as more AIFs are added to the driver.

No widgets are renamed, to ease verification that this commit makes no
functional change.

Signed-off-by: Samuel Holland <sam...@sholland.org>
---
 sound/soc/sunxi/sun8i-codec.c | 101 ++++++++++++++++++----------------
 1 file changed, 53 insertions(+), 48 deletions(-)

diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c
index 6887a2e897f4..d14243c434f9 100644
--- a/sound/soc/sunxi/sun8i-codec.c
+++ b/sound/soc/sunxi/sun8i-codec.c
@@ -327,16 +327,35 @@ static int sun8i_codec_hw_params(struct snd_pcm_substream 
*substream,
 
        regmap_update_bits(scodec->regmap, SUN8I_SYS_SR_CTRL,
                           SUN8I_SYS_SR_CTRL_AIF1_FS_MASK,
                           sample_rate << SUN8I_SYS_SR_CTRL_AIF1_FS);
 
        return 0;
 }
 
+static const struct snd_kcontrol_new sun8i_aif1_ad0_mixer_controls[] = {
+       SOC_DAPM_DOUBLE("AIF1 Slot 0 Digital ADC Capture Switch",
+                       SUN8I_AIF1_MXR_SRC,
+                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF1DA0L,
+                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF1DA0R, 1, 0),
+       SOC_DAPM_DOUBLE("AIF2 Digital ADC Capture Switch",
+                       SUN8I_AIF1_MXR_SRC,
+                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACL,
+                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACR, 1, 0),
+       SOC_DAPM_DOUBLE("AIF1 Data Digital ADC Capture Switch",
+                       SUN8I_AIF1_MXR_SRC,
+                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_ADCL,
+                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_ADCR, 1, 0),
+       SOC_DAPM_DOUBLE("AIF2 Inv Digital ADC Capture Switch",
+                       SUN8I_AIF1_MXR_SRC,
+                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACR,
+                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACL, 1, 0),
+};
+
 static const struct snd_kcontrol_new sun8i_dac_mixer_controls[] = {
        SOC_DAPM_DOUBLE("AIF1 Slot 0 Digital DAC Playback Switch",
                        SUN8I_DAC_MXR_SRC,
                        SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA0L,
                        SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_AIF1DA0R, 1, 0),
        SOC_DAPM_DOUBLE("AIF1 Slot 1 Digital DAC Playback Switch",
                        SUN8I_DAC_MXR_SRC,
                        SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA1L,
@@ -344,34 +363,16 @@ static const struct snd_kcontrol_new 
sun8i_dac_mixer_controls[] = {
        SOC_DAPM_DOUBLE("AIF2 Digital DAC Playback Switch", SUN8I_DAC_MXR_SRC,
                        SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF2DACL,
                        SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_AIF2DACR, 1, 0),
        SOC_DAPM_DOUBLE("ADC Digital DAC Playback Switch", SUN8I_DAC_MXR_SRC,
                        SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_ADCL,
                        SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_ADCR, 1, 0),
 };
 
-static const struct snd_kcontrol_new sun8i_input_mixer_controls[] = {
-       SOC_DAPM_DOUBLE("AIF1 Slot 0 Digital ADC Capture Switch",
-                       SUN8I_AIF1_MXR_SRC,
-                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF1DA0L,
-                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF1DA0R, 1, 0),
-       SOC_DAPM_DOUBLE("AIF2 Digital ADC Capture Switch", SUN8I_AIF1_MXR_SRC,
-                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACL,
-                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACR, 1, 0),
-       SOC_DAPM_DOUBLE("AIF1 Data Digital ADC Capture Switch",
-                       SUN8I_AIF1_MXR_SRC,
-                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_ADCL,
-                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_ADCR, 1, 0),
-       SOC_DAPM_DOUBLE("AIF2 Inv Digital ADC Capture Switch",
-                       SUN8I_AIF1_MXR_SRC,
-                       SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACR,
-                       SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACL, 1, 0),
-};
-
 static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
        /* System Clocks */
        SND_SOC_DAPM_CLOCK_SUPPLY("mod"),
 
        SND_SOC_DAPM_SUPPLY("AIF1CLK",
                            SUN8I_SYSCLK_CTL,
                            SUN8I_SYSCLK_CTL_AIF1CLK_ENA, 0, NULL, 0),
        SND_SOC_DAPM_SUPPLY("SYSCLK",
@@ -395,55 +396,59 @@ static const struct snd_soc_dapm_widget 
sun8i_codec_dapm_widgets[] = {
                            SUN8I_MOD_RST_CTL_AIF1, 0, NULL, 0),
        SND_SOC_DAPM_SUPPLY("RST ADC",
                            SUN8I_MOD_RST_CTL,
                            SUN8I_MOD_RST_CTL_ADC, 0, NULL, 0),
        SND_SOC_DAPM_SUPPLY("RST DAC",
                            SUN8I_MOD_RST_CTL,
                            SUN8I_MOD_RST_CTL_DAC, 0, NULL, 0),
 
-       /* Digital parts of the DACs and ADC */
-       SND_SOC_DAPM_SUPPLY("DAC", SUN8I_DAC_DIG_CTRL, SUN8I_DAC_DIG_CTRL_ENDA,
-                           0, NULL, 0),
-       SND_SOC_DAPM_SUPPLY("ADC", SUN8I_ADC_DIG_CTRL, SUN8I_ADC_DIG_CTRL_ENAD,
-                           0, NULL, 0),
-
-       /* AIF "DAC" Inputs */
-       SND_SOC_DAPM_AIF_IN("AIF1 DA0L", "Playback", 0,
-                           SUN8I_AIF1_DACDAT_CTRL,
-                           SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA, 0),
-       SND_SOC_DAPM_AIF_IN("AIF1 DA0R", "Playback", 0,
-                           SUN8I_AIF1_DACDAT_CTRL,
-                           SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA, 0),
+       /* Module Supplies */
+       SND_SOC_DAPM_SUPPLY("ADC",
+                           SUN8I_ADC_DIG_CTRL,
+                           SUN8I_ADC_DIG_CTRL_ENAD, 0, NULL, 0),
+       SND_SOC_DAPM_SUPPLY("DAC",
+                           SUN8I_DAC_DIG_CTRL,
+                           SUN8I_DAC_DIG_CTRL_ENDA, 0, NULL, 0),
 
        /* AIF "ADC" Outputs */
        SND_SOC_DAPM_AIF_IN("AIF1 AD0L", "Capture", 0,
                            SUN8I_AIF1_ADCDAT_CTRL,
                            SUN8I_AIF1_ADCDAT_CTRL_AIF1_AD0L_ENA, 0),
        SND_SOC_DAPM_AIF_IN("AIF1 AD0R", "Capture", 0,
                            SUN8I_AIF1_ADCDAT_CTRL,
                            SUN8I_AIF1_ADCDAT_CTRL_AIF1_AD0R_ENA, 0),
 
+       /* AIF "ADC" Mixers */
+       SOC_MIXER_ARRAY("Left Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
+                       sun8i_aif1_ad0_mixer_controls),
+       SOC_MIXER_ARRAY("Right Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
+                       sun8i_aif1_ad0_mixer_controls),
+
+       /* AIF "DAC" Inputs */
+       SND_SOC_DAPM_AIF_IN("AIF1 DA0L", "Playback", 0,
+                           SUN8I_AIF1_DACDAT_CTRL,
+                           SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA, 0),
+       SND_SOC_DAPM_AIF_IN("AIF1 DA0R", "Playback", 0,
+                           SUN8I_AIF1_DACDAT_CTRL,
+                           SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA, 0),
+
        /* ADC Inputs (connected to analog codec DAPM context) */
        SND_SOC_DAPM_ADC("ADCL", NULL, SND_SOC_NOPM, 0, 0),
        SND_SOC_DAPM_ADC("ADCR", NULL, SND_SOC_NOPM, 0, 0),
 
        /* DAC Outputs (connected to analog codec DAPM context) */
        SND_SOC_DAPM_DAC("DACL", NULL, SND_SOC_NOPM, 0, 0),
        SND_SOC_DAPM_DAC("DACR", NULL, SND_SOC_NOPM, 0, 0),
 
-       /* DAC and ADC Mixers */
+       /* DAC Mixers */
        SOC_MIXER_ARRAY("Left Digital DAC Mixer", SND_SOC_NOPM, 0, 0,
                        sun8i_dac_mixer_controls),
        SOC_MIXER_ARRAY("Right Digital DAC Mixer", SND_SOC_NOPM, 0, 0,
                        sun8i_dac_mixer_controls),
-       SOC_MIXER_ARRAY("Left Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
-                       sun8i_input_mixer_controls),
-       SOC_MIXER_ARRAY("Right Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
-                       sun8i_input_mixer_controls),
 };
 
 static const struct snd_soc_dapm_route sun8i_codec_dapm_routes[] = {
        /* Clock Routes */
        { "AIF1CLK", NULL, "mod" },
 
        { "SYSCLK", NULL, "AIF1CLK" },
 
@@ -462,37 +467,37 @@ static const struct snd_soc_dapm_route 
sun8i_codec_dapm_routes[] = {
        { "ADCR", NULL, "ADC" },
 
        { "CLK DAC", NULL, "SYSCLK" },
        { "RST DAC", NULL, "CLK DAC" },
        { "DAC", NULL, "RST DAC" },
        { "DACL", NULL, "DAC" },
        { "DACR", NULL, "DAC" },
 
-       /* DAC Routes */
+       /* AIF "ADC" Output Routes */
+       { "AIF1 AD0L", NULL, "Left Digital ADC Mixer" },
+       { "AIF1 AD0R", NULL, "Right Digital ADC Mixer" },
+
+       /* AIF "ADC" Mixer Routes */
+       { "Left Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", 
"AIF1 DA0L" },
+       { "Left Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", 
"ADCL" },
+
+       { "Right Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", 
"AIF1 DA0R" },
+       { "Right Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", 
"ADCR" },
+
+       /* DAC Output Routes */
        { "DACL", NULL, "Left Digital DAC Mixer" },
        { "DACR", NULL, "Right Digital DAC Mixer" },
 
        /* DAC Mixer Routes */
        { "Left Digital DAC Mixer", "AIF1 Slot 0 Digital DAC Playback Switch", 
"AIF1 DA0L" },
        { "Left Digital DAC Mixer", "ADC Digital DAC Playback Switch", "ADCL" },
 
        { "Right Digital DAC Mixer", "AIF1 Slot 0 Digital DAC Playback Switch", 
"AIF1 DA0R" },
        { "Right Digital DAC Mixer", "ADC Digital DAC Playback Switch", "ADCR" 
},
-
-       /* ADC Routes */
-       { "AIF1 AD0L", NULL, "Left Digital ADC Mixer" },
-       { "AIF1 AD0R", NULL, "Right Digital ADC Mixer" },
-
-       /* ADC Mixer Routes */
-       { "Left Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", 
"AIF1 DA0L" },
-       { "Left Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", 
"ADCL" },
-
-       { "Right Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", 
"AIF1 DA0R" },
-       { "Right Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", 
"ADCR" },
 };
 
 static const struct snd_soc_dapm_widget sun8i_codec_legacy_widgets[] = {
        /* Legacy ADC Inputs (connected to analog codec DAPM context) */
        SND_SOC_DAPM_ADC("AIF1 Slot 0 Left ADC", NULL, SND_SOC_NOPM, 0, 0),
        SND_SOC_DAPM_ADC("AIF1 Slot 0 Right ADC", NULL, SND_SOC_NOPM, 0, 0),
 
        /* Legacy DAC Outputs (connected to analog codec DAPM context) */
-- 
2.26.2

Reply via email to