Loading sound/soc/codecs/wcd9306.c +24 −0 Original line number Diff line number Diff line Loading @@ -1064,6 +1064,25 @@ static const struct soc_enum class_h_dsm_enum = static const struct snd_kcontrol_new class_h_dsm_mux = SOC_DAPM_ENUM("CLASS_H_DSM MUX Mux", class_h_dsm_enum); static int tapan_hph_impedance_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { uint32_t zl, zr; bool hphr; struct soc_multi_mixer_control *mc; struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct tapan_priv *priv = snd_soc_codec_get_drvdata(codec); mc = (struct soc_multi_mixer_control *)(kcontrol->private_value); hphr = mc->shift; wcd9xxx_mbhc_get_impedance(&priv->mbhc, &zl, &zr); pr_debug("%s: zl %u, zr %u\n", __func__, zl, zr); ucontrol->value.integer.value[0] = hphr ? zr : zl; return 0; } static const struct snd_kcontrol_new tapan_common_snd_controls[] = { SOC_ENUM_EXT("EAR PA Gain", tapan_ear_pa_gain_enum[0], Loading Loading @@ -1167,6 +1186,11 @@ static const struct snd_kcontrol_new tapan_common_snd_controls[] = { tapan_get_iir_band_audio_mixer, tapan_put_iir_band_audio_mixer), SOC_SINGLE_MULTI_EXT("IIR2 Band5", IIR2, BAND5, 255, 0, 5, tapan_get_iir_band_audio_mixer, tapan_put_iir_band_audio_mixer), SOC_SINGLE_EXT("HPHL Impedance", 0, 0, UINT_MAX, 0, tapan_hph_impedance_get, NULL), SOC_SINGLE_EXT("HPHR Impedance", 0, 1, UINT_MAX, 0, tapan_hph_impedance_get, NULL), }; static const struct snd_kcontrol_new tapan_9306_snd_controls[] = { Loading Loading
sound/soc/codecs/wcd9306.c +24 −0 Original line number Diff line number Diff line Loading @@ -1064,6 +1064,25 @@ static const struct soc_enum class_h_dsm_enum = static const struct snd_kcontrol_new class_h_dsm_mux = SOC_DAPM_ENUM("CLASS_H_DSM MUX Mux", class_h_dsm_enum); static int tapan_hph_impedance_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { uint32_t zl, zr; bool hphr; struct soc_multi_mixer_control *mc; struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct tapan_priv *priv = snd_soc_codec_get_drvdata(codec); mc = (struct soc_multi_mixer_control *)(kcontrol->private_value); hphr = mc->shift; wcd9xxx_mbhc_get_impedance(&priv->mbhc, &zl, &zr); pr_debug("%s: zl %u, zr %u\n", __func__, zl, zr); ucontrol->value.integer.value[0] = hphr ? zr : zl; return 0; } static const struct snd_kcontrol_new tapan_common_snd_controls[] = { SOC_ENUM_EXT("EAR PA Gain", tapan_ear_pa_gain_enum[0], Loading Loading @@ -1167,6 +1186,11 @@ static const struct snd_kcontrol_new tapan_common_snd_controls[] = { tapan_get_iir_band_audio_mixer, tapan_put_iir_band_audio_mixer), SOC_SINGLE_MULTI_EXT("IIR2 Band5", IIR2, BAND5, 255, 0, 5, tapan_get_iir_band_audio_mixer, tapan_put_iir_band_audio_mixer), SOC_SINGLE_EXT("HPHL Impedance", 0, 0, UINT_MAX, 0, tapan_hph_impedance_get, NULL), SOC_SINGLE_EXT("HPHR Impedance", 0, 1, UINT_MAX, 0, tapan_hph_impedance_get, NULL), }; static const struct snd_kcontrol_new tapan_9306_snd_controls[] = { Loading