diff options
Diffstat (limited to 'sound/soc/soc-jack.c')
-rw-r--r-- | sound/soc/soc-jack.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/soc-jack.c b/sound/soc/soc-jack.c index 1d455ab79490..3c07a94c2e30 100644 --- a/sound/soc/soc-jack.c +++ b/sound/soc/soc-jack.c | |||
@@ -58,7 +58,7 @@ EXPORT_SYMBOL_GPL(snd_soc_jack_new); | |||
58 | */ | 58 | */ |
59 | void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask) | 59 | void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask) |
60 | { | 60 | { |
61 | struct snd_soc_codec *codec = jack->card->codec; | 61 | struct snd_soc_codec *codec; |
62 | struct snd_soc_jack_pin *pin; | 62 | struct snd_soc_jack_pin *pin; |
63 | int enable; | 63 | int enable; |
64 | int oldstatus; | 64 | int oldstatus; |
@@ -67,6 +67,7 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask) | |||
67 | WARN_ON_ONCE(!jack); | 67 | WARN_ON_ONCE(!jack); |
68 | return; | 68 | return; |
69 | } | 69 | } |
70 | codec = jack->card->codec; | ||
70 | 71 | ||
71 | mutex_lock(&codec->mutex); | 72 | mutex_lock(&codec->mutex); |
72 | 73 | ||
@@ -162,6 +163,9 @@ static void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio) | |||
162 | else | 163 | else |
163 | report = 0; | 164 | report = 0; |
164 | 165 | ||
166 | if (gpio->jack_status_check) | ||
167 | report = gpio->jack_status_check(); | ||
168 | |||
165 | snd_soc_jack_report(jack, report, gpio->report); | 169 | snd_soc_jack_report(jack, report, gpio->report); |
166 | } | 170 | } |
167 | 171 | ||