Skip to contentSkip to conversation

fix omap keypad

PATCH New Brian Swetland 1 participant 1 message Dec 3, 2005

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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
index 1bb1058..4aeb032 100644
@@ -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
index 15351bb..7e851e2 100644
@@ -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;