ALSA: hda - Add jack button support
authorTakashi Iwai <tiwai@suse.de>
Wed, 28 Nov 2018 13:25:37 +0000 (14:25 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 7 Dec 2018 10:42:36 +0000 (11:42 +0100)
commit911761c2304327a39ec9372be812a9648bd35c09
tree5d34e83238f7a829c787ce84921c5739cb69f04e
parente6ce180fa6df519b1e24dab9d1fcbe32ce618a5e
ALSA: hda - Add jack button support

Extend some structs to add the support for jack button changes.
Now snd_hda_jack_add_kctl() receives two more arguments: the jack type
and the jack keymaps.  Both are optional, and when zero are passed,
the function behaves just like before.

For reporting button state changes, you'd need to update
jack->button_state bits accordingly, typically in the jack callback.
Then the value OR'ed with button_state and the jack plug state is
passed to snd_jack_report().

Note that currently the code assumes only the one-shot button events,
i.e. it tries to send the button release soon after sending the button
event.  If a driver really supports the button release handling by
itself, we may need to introduce some flag to control this behavior in
future.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_jack.c
sound/pci/hda/hda_jack.h
sound/pci/hda/patch_hdmi.c