[E3-hacking] [PATCH] OMAP: Fix broken omap-keypad
Tony Lindgren
tony at atomide.com
Wed Oct 21 16:59:40 BST 2009
* Janusz Krzysztofik <jkrzyszt at tis.icnet.pl> [091021 07:21]:
> Hi,
> Commit 4f5433324d1e29cf234d5b1b14782c0fc2948298 had made machines that use new
> matrix_keypad based drivers happy while breaking those that still use old
> omap-keypad driver. The patch fixes omap-keypad device for my Amstrad Delta
> (tested) and probably 11 more OMAP1 based machines. It leaves a potential
> similiar problem on OMAP2 H4 machine not addressed.
>
> I would say that those new, matrix_keypad based drivers should be corrected to
> simply not include arch/arm/plat-omap/include/mach/keypad.h, which should keep
> serving omap-keypad based machines until they are all upgraded to use
> matrix_keypad.
Hmm, yeah let's try to do that instead.
> Created against linux-2.6.32-rc5
>
> Signed-off-by: Janusz Krzysztofik <jkrzyszt at tis.icnet.pl>
>
> ---
> --- linux-2.6.32-rc5/arch/arm/plat-omap/include/mach/keypad.h.orig 2009-10-16 02:41:50.000000000 +0200
> +++ linux-2.6.32-rc5/arch/arm/plat-omap/include/mach/keypad.h 2009-10-21 15:32:37.000000000 +0200
> @@ -10,7 +10,9 @@
> #ifndef ASMARM_ARCH_KEYPAD_H
> #define ASMARM_ARCH_KEYPAD_H
>
> +#ifndef CONFIG_ARCH_OMAP1
> #include <linux/input/matrix_keypad.h>
> +#endif
>
> struct omap_kp_platform_data {
> int rows;
I guess we only need to patch a few board-*.c files currently,
maybe only board-rx51.c?
> @@ -38,5 +40,11 @@ struct omap_kp_platform_data {
> #define KEY_PERSISTENT 0x00800000
> #define KEYNUM_MASK 0x00EFFFFF
>
> +#ifdef CONFIG_ARCH_OMAP1
> +#define KEY(col, row, val) (((col) << 28) | ((row) << 24) | (val))
> +#define PERSISTENT_KEY(col, row) (((col) << 28) | ((row) << 24) | \
> + KEY_PERSISTENT)
> +#endif
> +
> #endif
>
Maybe we should add:
#warning: Please update the board to use matrix_keypad.h instead
Regards,
Tony
More information about the e3-hacking
mailing list