Loading sound/soc/codecs/wcd934x/wcd934x.c +52 −0 Original line number Diff line number Diff line Loading @@ -3534,6 +3534,58 @@ static int __tavil_codec_enable_micbias(struct snd_soc_dapm_widget *w, return 0; } /* * tavil_codec_enable_standalone_micbias - enable micbias standalone * @codec: pointer to codec instance * @micb_num: number of micbias to be enabled * @enable: true to enable micbias or false to disable * * This function is used to enable micbias (1, 2, 3 or 4) during * standalone independent of whether TX use-case is running or not * * Return: error code in case of failure or 0 for success */ int tavil_codec_enable_standalone_micbias(struct snd_soc_codec *codec, int micb_num, bool enable) { const char * const micb_names[] = { DAPM_MICBIAS1_STANDALONE, DAPM_MICBIAS2_STANDALONE, DAPM_MICBIAS3_STANDALONE, DAPM_MICBIAS4_STANDALONE }; int micb_index = micb_num - 1; int rc; if (!codec) { pr_err("%s: Codec memory is NULL\n", __func__); return -EINVAL; } if ((micb_index < 0) || (micb_index > TAVIL_MAX_MICBIAS - 1)) { dev_err(codec->dev, "%s: Invalid micbias index, micb_ind:%d\n", __func__, micb_index); return -EINVAL; } if (enable) rc = snd_soc_dapm_force_enable_pin_unlocked( snd_soc_codec_get_dapm(codec), micb_names[micb_index]); else rc = snd_soc_dapm_disable_pin_unlocked( snd_soc_codec_get_dapm(codec), micb_names[micb_index]); if (!rc) snd_soc_dapm_sync(snd_soc_codec_get_dapm(codec)); else dev_err(codec->dev, "%s: micbias%d force %s pin failed\n", __func__, micb_num, (enable ? "enable" : "disable")); return rc; } EXPORT_SYMBOL(tavil_codec_enable_standalone_micbias); static int tavil_codec_force_enable_micbias(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) Loading Loading
sound/soc/codecs/wcd934x/wcd934x.c +52 −0 Original line number Diff line number Diff line Loading @@ -3534,6 +3534,58 @@ static int __tavil_codec_enable_micbias(struct snd_soc_dapm_widget *w, return 0; } /* * tavil_codec_enable_standalone_micbias - enable micbias standalone * @codec: pointer to codec instance * @micb_num: number of micbias to be enabled * @enable: true to enable micbias or false to disable * * This function is used to enable micbias (1, 2, 3 or 4) during * standalone independent of whether TX use-case is running or not * * Return: error code in case of failure or 0 for success */ int tavil_codec_enable_standalone_micbias(struct snd_soc_codec *codec, int micb_num, bool enable) { const char * const micb_names[] = { DAPM_MICBIAS1_STANDALONE, DAPM_MICBIAS2_STANDALONE, DAPM_MICBIAS3_STANDALONE, DAPM_MICBIAS4_STANDALONE }; int micb_index = micb_num - 1; int rc; if (!codec) { pr_err("%s: Codec memory is NULL\n", __func__); return -EINVAL; } if ((micb_index < 0) || (micb_index > TAVIL_MAX_MICBIAS - 1)) { dev_err(codec->dev, "%s: Invalid micbias index, micb_ind:%d\n", __func__, micb_index); return -EINVAL; } if (enable) rc = snd_soc_dapm_force_enable_pin_unlocked( snd_soc_codec_get_dapm(codec), micb_names[micb_index]); else rc = snd_soc_dapm_disable_pin_unlocked( snd_soc_codec_get_dapm(codec), micb_names[micb_index]); if (!rc) snd_soc_dapm_sync(snd_soc_codec_get_dapm(codec)); else dev_err(codec->dev, "%s: micbias%d force %s pin failed\n", __func__, micb_num, (enable ? "enable" : "disable")); return rc; } EXPORT_SYMBOL(tavil_codec_enable_standalone_micbias); static int tavil_codec_force_enable_micbias(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) Loading