Loading Documentation/sound/alsa/DocBook/alsa-driver-api.tmpl +3 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,9 @@ <chapter><title>Miscellaneous Functions</title> <sect1><title>Hardware-Dependent Devices API</title> !Esound/core/hwdep.c </sect1> <sect1><title>Jack Abstraction Layer API</title> !Esound/core/jack.c </sect1> <sect1><title>ISA DMA Helpers</title> !Esound/core/isadma.c Loading include/linux/input.h +1 −0 Original line number Diff line number Diff line Loading @@ -661,6 +661,7 @@ struct input_absinfo { #define SW_DOCK 0x05 /* set = plugged into dock */ #define SW_LINEOUT_INSERT 0x06 /* set = inserted */ #define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ #define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ #define SW_MAX 0x0f #define SW_CNT (SW_MAX+1) Loading include/sound/jack.h +5 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ struct input_dev; /** * Jack types which can be reported. These values are used as a * bitmask. * * Note that this must be kept in sync with the lookup table in * sound/core/jack.c. */ enum snd_jack_types { SND_JACK_HEADPHONE = 0x0001, Loading @@ -37,6 +40,8 @@ enum snd_jack_types { SND_JACK_HEADSET = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE, SND_JACK_LINEOUT = 0x0004, SND_JACK_MECHANICAL = 0x0008, /* If detected separately */ SND_JACK_VIDEOOUT = 0x0010, SND_JACK_AVOUT = SND_JACK_LINEOUT | SND_JACK_VIDEOOUT, }; struct snd_jack { Loading sound/core/jack.c +21 −24 Original line number Diff line number Diff line Loading @@ -23,6 +23,14 @@ #include <sound/jack.h> #include <sound/core.h> static int jack_types[] = { SW_HEADPHONE_INSERT, SW_MICROPHONE_INSERT, SW_LINEOUT_INSERT, SW_JACK_PHYSICAL_INSERT, SW_VIDEOOUT_INSERT, }; static int snd_jack_dev_free(struct snd_device *device) { struct snd_jack *jack = device->device_data; Loading Loading @@ -79,6 +87,7 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, { struct snd_jack *jack; int err; int i; static struct snd_device_ops ops = { .dev_free = snd_jack_dev_free, .dev_register = snd_jack_dev_register, Loading @@ -100,18 +109,10 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, jack->type = type; if (type & SND_JACK_HEADPHONE) input_set_capability(jack->input_dev, EV_SW, SW_HEADPHONE_INSERT); if (type & SND_JACK_LINEOUT) input_set_capability(jack->input_dev, EV_SW, SW_LINEOUT_INSERT); if (type & SND_JACK_MICROPHONE) for (i = 0; i < ARRAY_SIZE(jack_types); i++) if (type & (1 << i)) input_set_capability(jack->input_dev, EV_SW, SW_MICROPHONE_INSERT); if (type & SND_JACK_MECHANICAL) input_set_capability(jack->input_dev, EV_SW, SW_JACK_PHYSICAL_INSERT); jack_types[i]); err = snd_device_new(card, SNDRV_DEV_JACK, jack, &ops); if (err < 0) Loading Loading @@ -154,21 +155,17 @@ EXPORT_SYMBOL(snd_jack_set_parent); */ void snd_jack_report(struct snd_jack *jack, int status) { int i; if (!jack) return; if (jack->type & SND_JACK_HEADPHONE) input_report_switch(jack->input_dev, SW_HEADPHONE_INSERT, 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) input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT, status & SND_JACK_MICROPHONE); if (jack->type & SND_JACK_MECHANICAL) input_report_switch(jack->input_dev, SW_JACK_PHYSICAL_INSERT, status & SND_JACK_MECHANICAL); for (i = 0; i < ARRAY_SIZE(jack_types); i++) { int testbit = 1 << i; if (jack->type & testbit) input_report_switch(jack->input_dev, jack_types[i], status & testbit); } input_sync(jack->input_dev); } Loading Loading
Documentation/sound/alsa/DocBook/alsa-driver-api.tmpl +3 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,9 @@ <chapter><title>Miscellaneous Functions</title> <sect1><title>Hardware-Dependent Devices API</title> !Esound/core/hwdep.c </sect1> <sect1><title>Jack Abstraction Layer API</title> !Esound/core/jack.c </sect1> <sect1><title>ISA DMA Helpers</title> !Esound/core/isadma.c Loading
include/linux/input.h +1 −0 Original line number Diff line number Diff line Loading @@ -661,6 +661,7 @@ struct input_absinfo { #define SW_DOCK 0x05 /* set = plugged into dock */ #define SW_LINEOUT_INSERT 0x06 /* set = inserted */ #define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ #define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ #define SW_MAX 0x0f #define SW_CNT (SW_MAX+1) Loading
include/sound/jack.h +5 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ struct input_dev; /** * Jack types which can be reported. These values are used as a * bitmask. * * Note that this must be kept in sync with the lookup table in * sound/core/jack.c. */ enum snd_jack_types { SND_JACK_HEADPHONE = 0x0001, Loading @@ -37,6 +40,8 @@ enum snd_jack_types { SND_JACK_HEADSET = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE, SND_JACK_LINEOUT = 0x0004, SND_JACK_MECHANICAL = 0x0008, /* If detected separately */ SND_JACK_VIDEOOUT = 0x0010, SND_JACK_AVOUT = SND_JACK_LINEOUT | SND_JACK_VIDEOOUT, }; struct snd_jack { Loading
sound/core/jack.c +21 −24 Original line number Diff line number Diff line Loading @@ -23,6 +23,14 @@ #include <sound/jack.h> #include <sound/core.h> static int jack_types[] = { SW_HEADPHONE_INSERT, SW_MICROPHONE_INSERT, SW_LINEOUT_INSERT, SW_JACK_PHYSICAL_INSERT, SW_VIDEOOUT_INSERT, }; static int snd_jack_dev_free(struct snd_device *device) { struct snd_jack *jack = device->device_data; Loading Loading @@ -79,6 +87,7 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, { struct snd_jack *jack; int err; int i; static struct snd_device_ops ops = { .dev_free = snd_jack_dev_free, .dev_register = snd_jack_dev_register, Loading @@ -100,18 +109,10 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, jack->type = type; if (type & SND_JACK_HEADPHONE) input_set_capability(jack->input_dev, EV_SW, SW_HEADPHONE_INSERT); if (type & SND_JACK_LINEOUT) input_set_capability(jack->input_dev, EV_SW, SW_LINEOUT_INSERT); if (type & SND_JACK_MICROPHONE) for (i = 0; i < ARRAY_SIZE(jack_types); i++) if (type & (1 << i)) input_set_capability(jack->input_dev, EV_SW, SW_MICROPHONE_INSERT); if (type & SND_JACK_MECHANICAL) input_set_capability(jack->input_dev, EV_SW, SW_JACK_PHYSICAL_INSERT); jack_types[i]); err = snd_device_new(card, SNDRV_DEV_JACK, jack, &ops); if (err < 0) Loading Loading @@ -154,21 +155,17 @@ EXPORT_SYMBOL(snd_jack_set_parent); */ void snd_jack_report(struct snd_jack *jack, int status) { int i; if (!jack) return; if (jack->type & SND_JACK_HEADPHONE) input_report_switch(jack->input_dev, SW_HEADPHONE_INSERT, 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) input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT, status & SND_JACK_MICROPHONE); if (jack->type & SND_JACK_MECHANICAL) input_report_switch(jack->input_dev, SW_JACK_PHYSICAL_INSERT, status & SND_JACK_MECHANICAL); for (i = 0; i < ARRAY_SIZE(jack_types); i++) { int testbit = 1 << i; if (jack->type & testbit) input_report_switch(jack->input_dev, jack_types[i], status & testbit); } input_sync(jack->input_dev); } Loading