Subject: [linux-sunxi] Re: [PATCH v9 2/2] Add mixer controls: Line-In, FM-In, Mic 2, Capture Source, Differential Line-In.

From: [email-masked] (Danny Milosavljevic)
Date: Wed, 31 Aug 2016 09:40:44 +0200

> And what about microphone bias?

Would this be OK?

static int sun4i_codec_handle_mic_bias_event(struct snd_soc_dapm_widget *w,
                                             struct snd_kcontrol *k, int event)
{
        struct sun4i_codec *scodec = snd_soc_card_get_drvdata(w->dapm->card);
        if (SND_SOC_DAPM_EVENT_ON(event))
                regmap_update_bits(scodec->regmap,
                                   SUN4I_CODEC_ADC_ACTL,
                                   BIT(SUN4I_CODEC_ADC_ACTL_VMICEN),
                                   BIT(SUN4I_CODEC_ADC_ACTL_VMICEN));
        else
                regmap_update_bits(scodec->regmap,
                                   SUN4I_CODEC_ADC_ACTL,
                                   BIT(SUN4I_CODEC_ADC_ACTL_VMICEN),
                                   0);
}

static const struct snd_soc_dapm_widget sun4i_codec_codec_dapm_widgets[] = {
...
        SND_SOC_DAPM_MIC("Mic1", sun4i_codec_handle_mic_bias_event),
        SND_SOC_DAPM_MIC("Mic2", sun4i_codec_handle_mic_bias_event),

Do I then remove

         SND_SOC_DAPM_SUPPLY("VMIC", SUN4I_CODEC_ADC_ACTL,
                            SUN4I_CODEC_ADC_ACTL_VMICEN, 0, NULL, 0),

completely? What about the routes?