Commit a8022697811c3f2271df5ec14fa6f518b731b46a

Authored by Takashi Iwai

Merge branch 'topic/jack-mechanical' into to-push

Showing 3 changed files Side-by-side Diff

include/linux/input.h
... ... @@ -660,6 +660,7 @@
660 660 #define SW_MICROPHONE_INSERT 0x04 /* set = inserted */
661 661 #define SW_DOCK 0x05 /* set = plugged into dock */
662 662 #define SW_LINEOUT_INSERT 0x06 /* set = inserted */
  663 +#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */
663 664 #define SW_MAX 0x0f
664 665 #define SW_CNT (SW_MAX+1)
665 666  
include/sound/jack.h
... ... @@ -36,6 +36,7 @@
36 36 SND_JACK_MICROPHONE = 0x0002,
37 37 SND_JACK_HEADSET = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE,
38 38 SND_JACK_LINEOUT = 0x0004,
  39 + SND_JACK_MECHANICAL = 0x0008, /* If detected separately */
39 40 };
40 41  
41 42 struct snd_jack {
... ... @@ -109,6 +109,9 @@
109 109 if (type & SND_JACK_MICROPHONE)
110 110 input_set_capability(jack->input_dev, EV_SW,
111 111 SW_MICROPHONE_INSERT);
  112 + if (type & SND_JACK_MECHANICAL)
  113 + input_set_capability(jack->input_dev, EV_SW,
  114 + SW_JACK_PHYSICAL_INSERT);
112 115  
113 116 err = snd_device_new(card, SNDRV_DEV_JACK, jack, &ops);
114 117 if (err < 0)
... ... @@ -163,6 +166,9 @@
163 166 if (jack->type & SND_JACK_MICROPHONE)
164 167 input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT,
165 168 status & SND_JACK_MICROPHONE);
  169 + if (jack->type & SND_JACK_MECHANICAL)
  170 + input_report_switch(jack->input_dev, SW_JACK_PHYSICAL_INSERT,
  171 + status & SND_JACK_MECHANICAL);
166 172  
167 173 input_sync(jack->input_dev);
168 174 }