summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/core/jack.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sound/core/jack.c b/sound/core/jack.c
index e8b51f52e7df..0dbd618e3c94 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -339,6 +339,13 @@ void snd_jack_report(struct snd_jack *jack, int status)
if (!jack)
return;
+ list_for_each_entry(jack_kctl, &jack->kctl_list, list)
+ snd_kctl_jack_report(jack->card, jack_kctl->kctl,
+ status & jack_kctl->mask_bits);
+
+ if (!jack->input_dev)
+ return;
+
for (i = 0; i < ARRAY_SIZE(jack->key); i++) {
int testbit = SND_JACK_BTN_0 >> i;
@@ -357,10 +364,6 @@ void snd_jack_report(struct snd_jack *jack, int status)
input_sync(jack->input_dev);
- list_for_each_entry(jack_kctl, &jack->kctl_list, list)
- snd_kctl_jack_report(jack->card, jack_kctl->kctl,
- status & jack_kctl->mask_bits);
-
}
EXPORT_SYMBOL(snd_jack_report);