Initialize the workqueue and timer used by the gpio-switch IRQ handler before we register the IRQ handler itself. Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@xxxxxxxxx> --- arch/arm/plat-omap/gpio-switch.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) diff --git a/arch/arm/plat-omap/gpio-switch.c b/arch/arm/plat-omap/gpio-switch.c index e9041af..d88b6de 100644 --- a/arch/arm/plat-omap/gpio-switch.c +++ b/arch/arm/plat-omap/gpio-switch.c @@ -318,6 +318,13 @@ static int __init new_switch(struct gpio_switch *sw) else trigger = IRQF_TRIGGER_RISING; } + + INIT_WORK(&sw->work, gpio_sw_handler); + init_timer(&sw->timer); + + sw->timer.function = gpio_sw_timer; + sw->timer.data = (unsigned long)sw; + r = request_irq(gpio_to_irq(sw->gpio), gpio_sw_irq_handler, IRQF_SHARED | trigger, sw->name, sw); if (r < 0) { @@ -328,12 +335,6 @@ static int __init new_switch(struct gpio_switch *sw) return r; } - INIT_WORK(&sw->work, gpio_sw_handler); - init_timer(&sw->timer); - - sw->timer.function = gpio_sw_timer; - sw->timer.data = (unsigned long)sw; - list_add(&sw->node, &gpio_switches); return 0; -- 1.5.6.3 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html