]> git.baikalelectronics.ru Git - kernel.git/commit
Input: twl40300-keypad - fix handling of "all ground" rows
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 21 Jul 2010 03:25:35 +0000 (20:25 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 21 Jul 2010 03:29:48 +0000 (20:29 -0700)
commit7de34410819394fa267c3254024d962a76df9a4e
tree65a43fefef741f049b9bd237502200960a020f9e
parentd7c0b376ddbc277d075a82169f14452ab2a2400b
Input: twl40300-keypad - fix handling of "all ground" rows

The Nokia RX51 board code (arch/arm/mach-omap2/board-rx51-peripherals.c)
defines a key map for the matrix keypad keyboard. The hardware seems to
use all of the 8 rows and 8 columns of the keypad, although not all
possible locations are used.

The TWL4030 supports keypads with at most 8 rows and 8 columns. Most keys
are defined with a row and column number between 0 and 7, except

        KEY(0xff, 2, KEY_F9),
        KEY(0xff, 4, KEY_F10),
        KEY(0xff, 5, KEY_F11),

which represent keycodes that should be emitted when entire row is
connected to the ground.  since the driver handles this case as if we
had an extra column in the key matrix. Unfortunately we do not allocate
enough space and end up owerwriting some random memory.

Reported-and-tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
arch/arm/mach-omap2/board-rx51-peripherals.c
drivers/input/keyboard/twl4030_keypad.c