Commit 7ae74340 authored by Vinod Koul's avatar Vinod Koul Committed by Mark Brown

ASoC: mid-x86: Use the soc-jack apis for jack type detection

This patch modifies the mfld_machine to use the new jack apis for adding the
voltage zones for jack type detection. It also modifed TI sn95031 codec driver
to use these new apis
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarHarsha Priya <priya.harsha@intel.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 4a5aa6e9
...@@ -782,9 +782,7 @@ static int sn95031_get_headset_state(struct snd_soc_jack *mfld_jack) ...@@ -782,9 +782,7 @@ static int sn95031_get_headset_state(struct snd_soc_jack *mfld_jack)
{ {
int micbias = sn95031_get_mic_bias(mfld_jack->codec); int micbias = sn95031_get_mic_bias(mfld_jack->codec);
/* Defaulting to HEADSET for now. int jack_type = snd_soc_jack_get_type(mfld_jack, micbias);
* will change after adding soc-jack detection apis */
int jack_type = SND_JACK_HEADSET;
pr_debug("jack type detected = %d\n", jack_type); pr_debug("jack type detected = %d\n", jack_type);
if (jack_type == SND_JACK_HEADSET) if (jack_type == SND_JACK_HEADSET)
......
...@@ -74,6 +74,12 @@ static struct snd_soc_jack_pin mfld_jack_pins[] = { ...@@ -74,6 +74,12 @@ static struct snd_soc_jack_pin mfld_jack_pins[] = {
}, },
}; };
/* jack detection voltage zones */
static struct snd_soc_jack_zone mfld_zones[] = {
{MFLD_MV_START, MFLD_MV_AM_HS, SND_JACK_HEADPHONE},
{MFLD_MV_AM_HS, MFLD_MV_HS, SND_JACK_HEADSET},
};
/* sound card controls */ /* sound card controls */
static const char *headset_switch_text[] = {"Earpiece", "Headset"}; static const char *headset_switch_text[] = {"Earpiece", "Headset"};
...@@ -264,6 +270,12 @@ static int mfld_init(struct snd_soc_pcm_runtime *runtime) ...@@ -264,6 +270,12 @@ static int mfld_init(struct snd_soc_pcm_runtime *runtime)
pr_err("adding jack pins failed\n"); pr_err("adding jack pins failed\n");
return ret_val; return ret_val;
} }
ret_val = snd_soc_jack_add_zones(&mfld_jack,
ARRAY_SIZE(mfld_zones), mfld_zones);
if (ret_val) {
pr_err("adding jack zones failed\n");
return ret_val;
}
/* we want to check if anything is inserted at boot, /* we want to check if anything is inserted at boot,
* so send a fake event to codec and it will read adc * so send a fake event to codec and it will read adc
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment