>> + schedule_work(&pbi->handler);> > I think you can use threaded irq for this.> > See documentation for request_threaded_irq() in kernel/irq/manage.c.> And as an example of usage see drivers/mfd/wm8350-irq.c.

Haa that is useful information... completely missed to read about this feature. Will modify the code to make use of threaded IRQ.