Merge branches 'topic/dmic' and 'topic/qcom' of git://git.kernel.org/pub/scm/linux...
authorMark Brown <broonie@kernel.org>
Mon, 21 Aug 2017 18:31:51 +0000 (19:31 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 21 Aug 2017 18:31:51 +0000 (19:31 +0100)
1  2  3 
sound/soc/codecs/msm8916-wcd-analog.c
sound/soc/codecs/msm8916-wcd-digital.c

index f9a74ff2ce99a8a7820a8efaaf20be51bd109f71,4cc52cecf3b705815c7ac36bf13ad1d522a809d9,aec1e1626993bcc10c044ab71847b0d17c000ca7..1454f54f097708c9a475dd8d351e3e36694a16a2
@@@@ -536,9 -536,6 -536,6 +536,9 @@@@ static int pm8916_wcd_analog_probe(stru
                snd_soc_write(codec, wcd_reg_defaults_2_0[reg].reg,
                              wcd_reg_defaults_2_0[reg].def);
   
 ++     snd_soc_update_bits(codec, CDC_D_CDC_RST_CTL,
 ++                         RST_CTL_DIG_SW_RST_N_MASK,
 ++                         RST_CTL_DIG_SW_RST_N_REMOVE_RESET);
        return 0;
   }
   
@@@@ -546,9 -543,6 -543,6 +546,9 @@@@ static int pm8916_wcd_analog_remove(str
   {
        struct pm8916_wcd_analog_priv *priv = dev_get_drvdata(codec->dev);
   
 ++     snd_soc_update_bits(codec, CDC_D_CDC_RST_CTL,
 ++                         RST_CTL_DIG_SW_RST_N_MASK, 0);
 ++
        return regulator_bulk_disable(ARRAY_SIZE(priv->supplies),
                                      priv->supplies);
   }
@@@@ -742,6 -736,28 -736,28 +742,6 @@@@ static struct regmap *pm8916_get_regmap
        return dev_get_regmap(dev->parent, NULL);
   }
   
 --static int pm8916_wcd_analog_startup(struct snd_pcm_substream *substream,
 --                                   struct snd_soc_dai *dai)
 --{
 --     snd_soc_update_bits(dai->codec, CDC_D_CDC_RST_CTL,
 --                         RST_CTL_DIG_SW_RST_N_MASK,
 --                         RST_CTL_DIG_SW_RST_N_REMOVE_RESET);
 --
 --     return 0;
 --}
 --
 --static void pm8916_wcd_analog_shutdown(struct snd_pcm_substream *substream,
 --                                      struct snd_soc_dai *dai)
 --{
 --     snd_soc_update_bits(dai->codec, CDC_D_CDC_RST_CTL,
 --                         RST_CTL_DIG_SW_RST_N_MASK, 0);
 --}
 --
 - static struct snd_soc_dai_ops pm8916_wcd_analog_dai_ops = {
  -static const struct snd_soc_dai_ops pm8916_wcd_analog_dai_ops = {
 --     .startup = pm8916_wcd_analog_startup,
 --     .shutdown = pm8916_wcd_analog_shutdown,
 --};
 --
   static struct snd_soc_dai_driver pm8916_wcd_analog_dai[] = {
        [0] = {
               .name = "pm8916_wcd_analog_pdm_rx",
                            .channels_min = 1,
                            .channels_max = 3,
                            },
 --            .ops = &pm8916_wcd_analog_dai_ops,
               },
        [1] = {
               .name = "pm8916_wcd_analog_pdm_tx",
                           .channels_min = 1,
                           .channels_max = 4,
                           },
 --            .ops = &pm8916_wcd_analog_dai_ops,
               },
   };
   
- -static struct snd_soc_codec_driver pm8916_wcd_analog = {
+ +static const struct snd_soc_codec_driver pm8916_wcd_analog = {
        .probe = pm8916_wcd_analog_probe,
        .remove = pm8916_wcd_analog_remove,
        .get_regmap = pm8916_get_regmap,
index 858a9fc1c0574422a5d46d59803dd3482597dee2,43a915c725a0ae7defe358204059f8510e460da7,d2993e72d1e237c6f079fe69303df694bbab8fe6..66df8f810f0d740772a62d965466358012d91d4f
@@@@ -218,8 -218,6 -218,8 +218,8 @@@@ static const char *const rx_mix1_text[
   static const char *const dec_mux_text[] = {
        "ZERO", "ADC1", "ADC2", "ADC3", "DMIC1", "DMIC2"
   };
 + 
 + static const char *const cic_mux_text[] = { "AMIC", "DMIC" };
   static const char *const rx_mix2_text[] = { "ZERO", "IIR1", "IIR2" };
   static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" };
   
@@@@ -258,21 -256,11 -258,21 +258,21 @@@@ static const struct soc_enum dec1_mux_e
   static const struct soc_enum dec2_mux_enum = SOC_ENUM_SINGLE(
                                LPASS_CDC_CONN_TX_B1_CTL, 3, 6, dec_mux_text);
   
 + /* CIC */
 + static const struct soc_enum cic1_mux_enum = SOC_ENUM_SINGLE(
 +                              LPASS_CDC_TX1_MUX_CTL, 0, 2, cic_mux_text);
 + static const struct soc_enum cic2_mux_enum = SOC_ENUM_SINGLE(
 +                              LPASS_CDC_TX2_MUX_CTL, 0, 2, cic_mux_text);
 + 
   /* RDAC2 MUX */
   static const struct snd_kcontrol_new dec1_mux = SOC_DAPM_ENUM(
                                "DEC1 MUX Mux", dec1_mux_enum);
   static const struct snd_kcontrol_new dec2_mux = SOC_DAPM_ENUM(
                                "DEC2 MUX Mux", dec2_mux_enum);
 + static const struct snd_kcontrol_new cic1_mux = SOC_DAPM_ENUM(
 +                              "CIC1 MUX Mux", cic1_mux_enum);
 + static const struct snd_kcontrol_new cic2_mux = SOC_DAPM_ENUM(
 +                              "CIC2 MUX Mux", cic2_mux_enum);
   static const struct snd_kcontrol_new rx_mix1_inp1_mux = SOC_DAPM_ENUM(
                                "RX1 MIX1 INP1 Mux", rx_mix1_inp_enum[0]);
   static const struct snd_kcontrol_new rx_mix1_inp2_mux = SOC_DAPM_ENUM(
@@@@ -512,8 -500,6 -512,8 +512,8 @@@@ static const struct snd_soc_dapm_widge
        SND_SOC_DAPM_MUX("RX3 MIX1 INP3", SND_SOC_NOPM, 0, 0,
                         &rx3_mix1_inp3_mux),
   
 +      SND_SOC_DAPM_MUX("CIC1 MUX", SND_SOC_NOPM, 0, 0, &cic1_mux),
 +      SND_SOC_DAPM_MUX("CIC2 MUX", SND_SOC_NOPM, 0, 0, &cic2_mux),
        /* TX */
        SND_SOC_DAPM_MIXER("ADC1", SND_SOC_NOPM, 0, 0, NULL, 0),
        SND_SOC_DAPM_MIXER("ADC2", SND_SOC_NOPM, 0, 0, NULL, 0),
        /* Connectivity Clock */
        SND_SOC_DAPM_SUPPLY_S("CDC_CONN", -2, LPASS_CDC_CLK_OTHR_CTL, 2, 0,
                              NULL, 0),
 +      SND_SOC_DAPM_MIC("Digital Mic1", NULL),
 +      SND_SOC_DAPM_MIC("Digital Mic2", NULL),
   
   };
   
@@@@ -671,11 -655,6 -671,11 +671,11 @@@@ static const struct snd_soc_dapm_route 
        {"AIF1 Capture", NULL, "I2S TX2"},
        {"AIF1 Capture", NULL, "I2S TX3"},
   
 +      {"CIC1 MUX", "DMIC", "DEC1 MUX"},
 +      {"CIC1 MUX", "AMIC", "DEC1 MUX"},
 +      {"CIC2 MUX", "DMIC", "DEC2 MUX"},
 +      {"CIC2 MUX", "AMIC", "DEC2 MUX"},
 + 
        /* Decimator Inputs */
        {"DEC1 MUX", "DMIC1", "DMIC1"},
        {"DEC1 MUX", "DMIC2", "DMIC2"},
        {"DMIC1", NULL, "DMIC_CLK"},
        {"DMIC2", NULL, "DMIC_CLK"},
   
 -      {"I2S TX1", NULL, "DEC1 MUX"},
 -      {"I2S TX2", NULL, "DEC2 MUX"},
 +      {"I2S TX1", NULL, "CIC1 MUX"},
 +      {"I2S TX2", NULL, "CIC2 MUX"},
   
        {"I2S TX1", NULL, "TX_I2S_CLK"},
        {"I2S TX2", NULL, "TX_I2S_CLK"},
@@@@ -818,7 -797,7 -818,7 +818,7 @@@@ static void msm8916_wcd_digital_shutdow
                            LPASS_CDC_CLK_PDM_CTL_PDM_CLK_SEL_MASK, 0);
   }
   
  -static struct snd_soc_dai_ops msm8916_wcd_digital_dai_ops = {
  +static const struct snd_soc_dai_ops msm8916_wcd_digital_dai_ops = {
        .startup = msm8916_wcd_digital_startup,
        .shutdown = msm8916_wcd_digital_shutdown,
        .hw_params = msm8916_wcd_digital_hw_params,
@@@@ -851,7 -830,7 -851,7 +851,7 @@@@ static struct snd_soc_dai_driver msm891
               },
   };
   
- -static struct snd_soc_codec_driver msm8916_wcd_digital = {
+ +static const struct snd_soc_codec_driver msm8916_wcd_digital = {
        .probe = msm8916_wcd_digital_codec_probe,
        .set_sysclk = msm8916_wcd_digital_codec_set_sysclk,
        .component_driver = {