This hack works for me: --- a/drivers/platform/x86/intel-vbtn.c +++ b/drivers/platform/x86/intel-vbtn.c @@ -35,8 +35,18 @@ static const struct acpi_device_id intel_vbtn_ids[] = {
/* In theory, these are HID usages. */ static const struct key_entry intel_vbtn_keymap[] = { - { KE_IGNORE, 0xC0, { KEY_POWER } }, /* power key press */ - { KE_KEY, 0xC1, { KEY_POWER } }, /* power key release */ + { KE_IGNORE, 0xC0, { KEY_POWER } }, /* power key press */ + { KE_KEY, 0xC1, { KEY_POWER } }, /* power key release */ + { KE_IGNORE, 0xC2, { KEY_F13 } }, /* SUPER key press */ + { KE_KEY, 0xC3, { KEY_F14 } }, /* SUPER key release */ + { KE_IGNORE, 0xC4, { KEY_VOLUMEUP } }, /* vol up key press */ + { KE_KEY, 0xC5, { KEY_VOLUMEUP } }, /* vol up key release */ + { KE_IGNORE, 0xC6, { KEY_VOLUMEDOWN } }, /* vol down key press */ + { KE_KEY, 0xC7, { KEY_VOLUMEDOWN } }, /* vol down key release */ + { KE_IGNORE, 0xC8, { KEY_ROTATE_DISPLAY } }, /* rotate key press */ + { KE_KEY, 0xC9, { KEY_ROTATE_DISPLAY } }, /* rotate key release */ + { KE_KEY, 0xCC, { KEY_F15 } }, /* turn display to laptop mode */ + { KE_KEY, 0xCD, { KEY_F16 } }, /* turn display to tablet mode */ { KE_END }, };
This hack works for me: platform/ x86/intel- vbtn.c platform/ x86/intel- vbtn.c
--- a/drivers/
+++ b/drivers/
@@ -35,8 +35,18 @@ static const struct acpi_device_id intel_vbtn_ids[] = {
/* In theory, these are HID usages. */
static const struct key_entry intel_vbtn_keymap[] = {
- { KE_IGNORE, 0xC0, { KEY_POWER } }, /* power key press */
- { KE_KEY, 0xC1, { KEY_POWER } }, /* power key release */
+ { KE_IGNORE, 0xC0, { KEY_POWER } }, /* power key press */
+ { KE_KEY, 0xC1, { KEY_POWER } }, /* power key release */
+ { KE_IGNORE, 0xC2, { KEY_F13 } }, /* SUPER key press */
+ { KE_KEY, 0xC3, { KEY_F14 } }, /* SUPER key release */
+ { KE_IGNORE, 0xC4, { KEY_VOLUMEUP } }, /* vol up key press */
+ { KE_KEY, 0xC5, { KEY_VOLUMEUP } }, /* vol up key release */
+ { KE_IGNORE, 0xC6, { KEY_VOLUMEDOWN } }, /* vol down key press */
+ { KE_KEY, 0xC7, { KEY_VOLUMEDOWN } }, /* vol down key release */
+ { KE_IGNORE, 0xC8, { KEY_ROTATE_DISPLAY } }, /* rotate key press */
+ { KE_KEY, 0xC9, { KEY_ROTATE_DISPLAY } }, /* rotate key release */
+ { KE_KEY, 0xCC, { KEY_F15 } }, /* turn display to laptop mode */
+ { KE_KEY, 0xCD, { KEY_F16 } }, /* turn display to tablet mode */
{ KE_END },
};