diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2017-02-09 19:15:52 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-02-10 15:57:28 +0100 |
commit | cac513f1a9f7ace21d27665435f8fe7e39050396 (patch) | |
tree | da1a705d29a5537307ae9b264ce41a0738b95e4e /scripts/ver_linux | |
parent | auxdisplay: ht16k33: do not try to free fbdev (diff) | |
download | linux-cac513f1a9f7ace21d27665435f8fe7e39050396.tar.xz linux-cac513f1a9f7ace21d27665435f8fe7e39050396.zip |
auxdisplay: ht16k33: rework input device initialization
This patch fixes following issues in input device (keypad) handling:
- requesting IRQ before allocating and initializing parts of the device
that can be referenced from IRQ handler is racy, even if we try to
disable interrupt after requesting it. Let's move allocations around
so that everything is ready by the time we request IRQ.
- using threaded interrupt handler to schedule a work item it sub-optimal.
Disabling and then re-enabling interrupts in work item and in open/close
methods is prone to races and exactly the reason theraded interrupts were
introduced. Let's use the infrastructure properly and keep scanning the
matrix array in IRQ thread, stopping when there are no keys, or when told
to do so.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Tested-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/ver_linux')
0 files changed, 0 insertions, 0 deletions