summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonyoung Shim <jy0922.shim@samsung.com>2009-11-12 17:14:04 +0900
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-11-12 16:45:53 +0000
commitc871a05315d1a76034ea06feeda92081e1d608bf (patch)
treec19ab719a75eeeac84843aa76a69ceba03fa9328
parentf773205300fa4a5a405f8ed6e3bb97e46c6eefb4 (diff)
downloadlinux-3.10-c871a05315d1a76034ea06feeda92081e1d608bf.tar.gz
linux-3.10-c871a05315d1a76034ea06feeda92081e1d608bf.tar.bz2
linux-3.10-c871a05315d1a76034ea06feeda92081e1d608bf.zip
ASoC: Add jack_status_check callback function for GPIO jacks
The jack_status_check callback function is the interface to check the status of the jack. Some target provides the method to distinguish what is the jack inserted - headphone jack, microphone jack, tvout jack, etc, so we can implement it using the jack_status_check function. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--include/sound/soc.h2
-rw-r--r--sound/soc/soc-jack.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 310a21949a3..13b117aac5d 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -332,6 +332,8 @@ struct snd_soc_jack_gpio {
int debounce_time;
struct snd_soc_jack *jack;
struct work_struct work;
+
+ int (*jack_status_check)(void);
};
#endif
diff --git a/sound/soc/soc-jack.c b/sound/soc/soc-jack.c
index 12124149601..3c07a94c2e3 100644
--- a/sound/soc/soc-jack.c
+++ b/sound/soc/soc-jack.c
@@ -163,6 +163,9 @@ static void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio)
else
report = 0;
+ if (gpio->jack_status_check)
+ report = gpio->jack_status_check();
+
snd_soc_jack_report(jack, report, gpio->report);
}