fix omap keypad
Subsystems (3)
PATCH 1/1 fix omap keypad
- register an "omap-keypad" device so that the keypad driver actually gets probed
- initialize kp_tasklet.data so that we don't crash the first time the keypad tasklet runs
arch/arm/plat-omap/devices.c +7 -0
@@ -99,6 +99,11 @@ static inline void omap_init_i2c(void) {/*-------------------------------------------------------------------------*/ #if defined(CONFIG_KEYBOARD_OMAP ) || defined(CONFIG_KEYBOARD_OMAP_MODULE ) +static struct platform_device omap_kp_device = { + .name ="omap-keypad" , + .id =-1 , +}; +static void omap_init_kp (void ) {if (machine_is_omap_h2 () ||machine_is_omap_h3 ()) {
@@ -127,6 +132,8 @@ static void omap_init_kp(void)omap_cfg_reg (F4_730_KBC3 ); omap_cfg_reg(E3_730_KBC4); } + + (void )platform_device_register (&omap_kp_device); }#else static inline void omap_init_kp (void ) {}
drivers/input/keyboard/omap-keypad.c +1 -0
@@ -331,6 +331,7 @@ static int __init omap_kp_probe(struct p/* get the irq and init timer*/ tasklet_enable (&kp_tasklet); + kp_tasklet.data = (unsigned long ) omap_kp;if (request_irq (keypad_irq, omap_kp_interrupt,0 ,"omap-keypad" ,0 ) <0 )return -EINVAL ;