Patch "ALSA: hda - Add keycode map for alc input device" has been added to the 4.3-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ALSA: hda - Add keycode map for alc input device
to the 4.3-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
alsa-hda-add-keycode-map-for-alc-input-device.patch
and it can be found in the queue-4.3 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
c7b60a89516beb20a352ec85c73a8fccd5becf26Mon Sep 17 00:00:00 2001
From: Hui Wang <[email protected]>
Date: Mon, 28 Dec 2015 11:35:25 +0800
Subject: ALSA: hda - Add keycode map for alc input device
From: Hui Wang <[email protected]>
commit c7b60a89516beb20a352ec85c73a8fccd5becf26 upstream.
Then users can remap the keycode from userspace. If without the remap, the input device will pass KEY_MICMUTE to userspace, but in X11 layer, it uses KEY_F20 rather than KEY_MICMUTE for XF86AudioMicMute. After adding the keycode map, users can remap the keycode to any value users want.
--- sound/pci/hda/patch_realtek.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-)
sound/pci/hda/patch_realtek.c +16 -3
@@ -67,6 +67,10 @@ enum { ALC_HEADSET_TYPE_OMTP, }; +enum { +ALC_KEY_MICMUTE_INDEX , +}; +struct alc_customize_define {unsigned int sku_cfg;unsigned char port_connectivity;
@@ -123,6 +127,7 @@ struct alc_spec {unsigned int pll_coef_idx, pll_coef_bit;unsigned int coef0;struct input_dev *kb_dev; +u8 alc_mute_keycode_map[1 ]; };/*
@@ -3472,24 +3477,32 @@ static void gpio2_mic_hotkey_event(struc/* GPIO2 just toggles on a keypress/keyrelease cycle. Therefore send both key on and key off event for every interrupt. */ -input_report_key (spec->kb_dev,KEY_MICMUTE ,1 ); +input_report_key (spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX ],1 );input_sync (spec->kb_dev); -input_report_key (spec->kb_dev,KEY_MICMUTE ,0 ); +input_report_key (spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX ],0 );input_sync (spec->kb_dev); }static int alc_register_micmute_input_device (struct hda_codec *codec) {struct alc_spec *spec = codec->spec; +int i; spec->kb_dev =input_allocate_device ();if (!spec->kb_dev) {codec_err (codec,"Out of memory (input_allocate_device)\n" );return -ENOMEM ; } + + spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX ] =KEY_MICMUTE ; + spec->kb_dev->name ="Microphone Mute Button" ; spec->kb_dev->evbit[0 ] =BIT_MASK (EV_KEY ); - spec->kb_dev->keybit[BIT_WORD (KEY_MICMUTE )] =BIT_MASK (KEY_MICMUTE ); + spec->kb_dev->keycodesize =sizeof (spec->alc_mute_keycode_map[0 ]); + spec->kb_dev->keycodemax =ARRAY_SIZE (spec->alc_mute_keycode_map); + spec->kb_dev->keycode = spec->alc_mute_keycode_map; +for (i =0 ; i <ARRAY_SIZE (spec->alc_mute_keycode_map); i++) +set_bit (spec->alc_mute_keycode_map[i], spec->kb_dev->keybit);if (input_register_device (spec->kb_dev)) {codec_err (codec,"input_register_device failed\n" );
Patches currently in stable-queue which might be from [email protected] are
queue-4.3/alsa-hda-add-keycode-map-for-alc-input-device.patch queue-4.3/alsa-hda-add-mic-mute-hotkey-quirk-for-lenovo-thinkcentre-aio.patch queue-4.3/alsa-hda-fix-headphone-noise-after-dell-xps-13-resume-back-from-s3.patch queue-4.3/alsa-hda-fixing-speaker-noise-on-the-two-latest-thinkpad-models.patch