ASoC: Add jack_status_check callback function for GPIO jacks
Joonyoung Shim [Thu, 12 Nov 2009 08:14:04 +0000 (17:14 +0900)]
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>

include/sound/soc.h
sound/soc/soc-jack.c

index 310a219..13b117a 100644 (file)
@@ -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
 
index 1212414..3c07a94 100644 (file)
@@ -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);
 }