2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-20 03:04:01 +08:00
linux-next/drivers/input
Brian Norris ac5722c164 Input: cros_ec_keyb - fix button/switch capability reports
The cros_ec_keyb_bs array lists buttons and switches together, expecting
that its users will match the appropriate type and bit fields. But
cros_ec_keyb_register_bs() only checks the 'bit' field, which causes
misreported input capabilities in some cases. For example, tablets
(e.g., Scarlet -- a.k.a. Acer Chromebook Tab 10) were reporting a SW_LID
capability, because EC_MKBP_POWER_BUTTON and EC_MKBP_LID_OPEN happen to
share the same bit.

(This has comedic effect on a tablet, in which a power-management daemon
then thinks this "lid" is closed, and so puts the system to sleep as
soon as it boots!)

To fix this, check both the 'ev_type' and 'bit' fields before reporting
the capability.

Tested with a lid (Kevin / Samsung Chromebook Plus) and without a lid
(Scarlet / Acer Chromebook Tab 10).

This error got introduced when porting the feature from the downstream
Chromium OS kernel to be upstreamed.

Fixes: cdd7950e7a ("input: cros_ec_keyb: Add non-matrix buttons and switches")
Cc: <stable@vger.kernel.org>
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2018-11-12 11:52:04 -08:00
..
gameport Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
joystick Input: xpad - add support for Xbox1 PDP Camo series gamepad 2018-10-01 15:58:52 -07:00
keyboard Input: cros_ec_keyb - fix button/switch capability reports 2018-11-12 11:52:04 -08:00
misc Merge branch 'next' into for-linus 2018-10-22 12:04:33 -07:00
mouse Input: elan_i2c - add ELAN0620 to the ACPI table 2018-11-12 11:52:03 -08:00
rmi4 Input: synaptics-rmi4 - fix axis-swap behavior 2018-06-11 10:20:16 -07:00
serio Merge branch 'next' into for-linus 2018-10-22 12:04:33 -07:00
tablet Input: aiptek - replace GFP_ATOMIC with GFP_KERNEL in aiptek_probe() 2018-07-27 11:59:10 -07:00
touchscreen Merge branch 'next' into for-linus 2018-10-22 12:04:33 -07:00
apm-power.c
evbug.c Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
evdev.c Input: evdev - add a schedule point in evdev_write() 2018-10-05 11:42:31 -07:00
ff-core.c Input: uinput - avoid FF flush when destroying device 2017-09-21 16:31:22 -07:00
ff-memless.c Input: ff_memless - convert to using timer_setup() 2017-10-23 16:31:52 -07:00
input-compat.c Input: extend usable life of event timestamps to 2106 on 32 bit systems 2018-01-09 16:40:30 -08:00
input-compat.h Input: extend usable life of event timestamps to 2106 on 32 bit systems 2018-01-09 16:40:30 -08:00
input-leds.c Input: leds - fix out of bound access 2018-04-11 14:52:59 -07:00
input-mt.c Input: do not assign new tracking ID when changing tool type 2018-06-11 10:23:39 -07:00
input-polldev.c Input: remove remaining unneeded MODULE_VERSION() usage 2018-01-16 16:48:25 -08:00
input.c Input: do not use WARN() in input_alloc_absinfo() 2018-08-08 11:23:47 -07:00
joydev.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
Kconfig Input: mousedev - stop offering PS/2 to userspace by default 2017-01-31 11:31:49 -08:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
matrix-keymap.c Input: matrix-keypad - switch to using generic device properties 2017-01-31 11:31:48 -08:00
mousedev.c Input: mousedev - add a schedule point in mousedev_write() 2018-10-04 17:42:26 -07:00
sparse-keymap.c Input: remove remaining unneeded MODULE_VERSION() usage 2018-01-16 16:48:25 -08:00