linux/drivers/input
Fabian Vogt dfed481e62 Input: nspire-keypad - enable interrupts only when opened
[ Upstream commit 69d5ff3e9e ]

The driver registers an interrupt handler in _probe, but didn't configure
them until later when the _open function is called. In between, the keypad
can fire an IRQ due to touchpad activity, which the handler ignores. This
causes the kernel to disable the interrupt, blocking the keypad from
working.

Fix this by disabling interrupts before registering the handler.
Additionally, disable them in _close, so that they're only enabled while
open.

Fixes: fc4f314618 ("Input: add TI-Nspire keypad support")
Signed-off-by: Fabian Vogt <fabian@ritter-vogt.de>
Link: https://lore.kernel.org/r/3383725.iizBOSrK1V@linux-e202.suse.de
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2021-04-21 13:00:50 +02:00
..
gameport treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
joystick Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox Series X|S 2021-03-04 11:38:23 +01:00
keyboard Input: nspire-keypad - enable interrupts only when opened 2021-04-21 13:00:50 +02:00
misc Input: cm109 - do not stomp on control URB 2020-12-11 13:17:36 -08:00
mouse Input: elan_i2c - add new trackpoint report type 0x5F 2021-03-07 12:34:04 +01:00
rmi4 Input: synaptics-rmi4 - support bootloader v8 in f34v7 2020-10-04 19:51:45 -07:00
serio Input: i8042 - add ASUS Zenbook Flip to noselftest list 2021-03-04 11:38:23 +01:00
tablet treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
touchscreen Input: raydium_ts_i2c - do not send zero length 2021-03-04 11:38:23 +01:00
apm-power.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
evbug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
evdev.c Input: evdev - per-client waitgroups 2020-10-06 18:34:15 -07:00
ff-core.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ff-memless.c Input: ff-memless - kill timer in destroy() 2019-11-15 11:45:03 -08:00
input-compat.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
input-compat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
input-leds.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
input-mt.c Input: MT - avoid comma separated statements 2020-08-25 10:26:05 -07:00
input-polldev.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
input-poller.c Input: add input_get_poll_interval() 2019-10-04 12:31:46 -07:00
input-poller.h Input: add support for polling to input devices 2019-08-20 12:04:07 -07:00
input.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-03-26 20:49:44 -07:00
joydev.c Input: joydev - prevent potential read overflow in ioctl 2021-03-04 11:38:23 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile Input: add support for polling to input devices 2019-08-20 12:04:07 -07:00
matrix-keymap.c Input: matrix-keymap - switch to use device_property_count_u32() 2019-08-12 00:03:13 -07:00
mousedev.c *: convert stream-like files -> stream_open, even if they use noop_llseek 2019-07-14 16:09:19 +03:00
sparse-keymap.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00