Commit a53ccab3 authored by Matthew Ranostay's avatar Matthew Ranostay Committed by Takashi Iwai

ALSA: jack: lineout support to jack abstraction layer

This patch introduces support for reporting SW_LINEOUT_INSERT detection events
via the jack abstraction layer.

Also adds a SND_JACK_LINEOUT define to the input system header.
Signed-off-by: default avatarMatthew Ranostay <mranostay@embeddedalley.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ebaa0470
...@@ -644,6 +644,7 @@ struct input_absinfo { ...@@ -644,6 +644,7 @@ struct input_absinfo {
#define SW_RADIO SW_RFKILL_ALL /* deprecated */ #define SW_RADIO SW_RFKILL_ALL /* deprecated */
#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ #define SW_MICROPHONE_INSERT 0x04 /* set = inserted */
#define SW_DOCK 0x05 /* set = plugged into dock */ #define SW_DOCK 0x05 /* set = plugged into dock */
#define SW_LINEOUT_INSERT 0x06 /* set = inserted */
#define SW_MAX 0x0f #define SW_MAX 0x0f
#define SW_CNT (SW_MAX+1) #define SW_CNT (SW_MAX+1)
......
...@@ -35,6 +35,7 @@ enum snd_jack_types { ...@@ -35,6 +35,7 @@ enum snd_jack_types {
SND_JACK_HEADPHONE = 0x0001, SND_JACK_HEADPHONE = 0x0001,
SND_JACK_MICROPHONE = 0x0002, SND_JACK_MICROPHONE = 0x0002,
SND_JACK_HEADSET = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE, SND_JACK_HEADSET = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE,
SND_JACK_LINEOUT = 0x0004,
}; };
struct snd_jack { struct snd_jack {
......
...@@ -102,6 +102,9 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, ...@@ -102,6 +102,9 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,
if (type & SND_JACK_HEADPHONE) if (type & SND_JACK_HEADPHONE)
input_set_capability(jack->input_dev, EV_SW, input_set_capability(jack->input_dev, EV_SW,
SW_HEADPHONE_INSERT); SW_HEADPHONE_INSERT);
if (type & SND_JACK_LINEOUT)
input_set_capability(jack->input_dev, EV_SW,
SW_LINEOUT_INSERT);
if (type & SND_JACK_MICROPHONE) if (type & SND_JACK_MICROPHONE)
input_set_capability(jack->input_dev, EV_SW, input_set_capability(jack->input_dev, EV_SW,
SW_MICROPHONE_INSERT); SW_MICROPHONE_INSERT);
...@@ -150,6 +153,9 @@ void snd_jack_report(struct snd_jack *jack, int status) ...@@ -150,6 +153,9 @@ void snd_jack_report(struct snd_jack *jack, int status)
if (jack->type & SND_JACK_HEADPHONE) if (jack->type & SND_JACK_HEADPHONE)
input_report_switch(jack->input_dev, SW_HEADPHONE_INSERT, input_report_switch(jack->input_dev, SW_HEADPHONE_INSERT,
status & SND_JACK_HEADPHONE); status & SND_JACK_HEADPHONE);
if (jack->type & SND_JACK_LINEOUT)
input_report_switch(jack->input_dev, SW_LINEOUT_INSERT,
status & SND_JACK_LINEOUT);
if (jack->type & SND_JACK_MICROPHONE) if (jack->type & SND_JACK_MICROPHONE)
input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT, input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT,
status & SND_JACK_MICROPHONE); status & SND_JACK_MICROPHONE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment