diff options
author | Mahesh Mahadevan <r9aadq@freescale.com> | 2011-10-21 06:17:52 -0500 |
---|---|---|
committer | Eric Miao <eric.miao@canonical.com> | 2011-11-10 07:38:49 +0800 |
commit | d9da63608521eb329f095a200be24a10616f74ff (patch) | |
tree | fd2f850a791df472fe3c45ef094bd907d2423779 /sound | |
parent | e255a90b7e9e21a881d4bcd7835e37fba7f3c101 (diff) |
ENGR00160605 Update ALSA Headset detect code
Update Headset detect code incase no dedicated pin and detect is
always activated
Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/imx/imx-sgtl5000.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/sound/soc/imx/imx-sgtl5000.c b/sound/soc/imx/imx-sgtl5000.c index 82ee8eca868..3fd0aa211ae 100644 --- a/sound/soc/imx/imx-sgtl5000.c +++ b/sound/soc/imx/imx-sgtl5000.c @@ -249,24 +249,26 @@ static int imx_3stack_sgtl5000_init(struct snd_soc_pcm_runtime *rtd) snd_soc_dapm_enable_pin(&codec->dapm, "Headphone Jack"); snd_soc_dapm_sync(&codec->dapm); - /* Jack detection API stuff */ - ret = snd_soc_jack_new(codec, "Headphone Jack", - SND_JACK_HEADPHONE, &hs_jack); - if (ret) - return ret; - - ret = snd_soc_jack_add_pins(&hs_jack, ARRAY_SIZE(hs_jack_pins), - hs_jack_pins); - if (ret) { - printk(KERN_ERR "failed to call snd_soc_jack_add_pins\n"); - return ret; + if (hs_jack_gpios[0].gpio != -1) { + /* Jack detection API stuff */ + ret = snd_soc_jack_new(codec, "Headphone Jack", + SND_JACK_HEADPHONE, &hs_jack); + if (ret) + return ret; + + ret = snd_soc_jack_add_pins(&hs_jack, ARRAY_SIZE(hs_jack_pins), + hs_jack_pins); + if (ret) { + printk(KERN_ERR "failed to call snd_soc_jack_add_pins\n"); + return ret; + } + + ret = snd_soc_jack_add_gpios(&hs_jack, + ARRAY_SIZE(hs_jack_gpios), hs_jack_gpios); + if (ret) + printk(KERN_WARNING "failed to call snd_soc_jack_add_gpios\n"); } - ret = snd_soc_jack_add_gpios(&hs_jack, ARRAY_SIZE(hs_jack_gpios), - hs_jack_gpios); - if (ret) - printk(KERN_WARNING "failed to call snd_soc_jack_add_gpios\n"); - return 0; } |