mfd: Base interrupt for twl4030-irq must be one-shot
As the interrupt source is only cleared by the threaded interrupt service routine, we need to make the base interrupt IRQF_ONESHOT. Without this, the first interrupt from the TWL4030 cause the CPU to enter an infinite loop trying to handle to interrupt but never clearing it. Signed-off-by: NeilBrown <neilb@suse.de> Tested-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Родитель
8f6a459a9d
Коммит
286f8f3cd6
|
@ -733,8 +733,9 @@ int twl4030_init_irq(int irq_num, unsigned irq_base, unsigned irq_end)
|
|||
}
|
||||
|
||||
/* install an irq handler to demultiplex the TWL4030 interrupt */
|
||||
status = request_threaded_irq(irq_num, NULL, handle_twl4030_pih, 0,
|
||||
"TWL4030-PIH", NULL);
|
||||
status = request_threaded_irq(irq_num, NULL, handle_twl4030_pih,
|
||||
IRQF_ONESHOT,
|
||||
"TWL4030-PIH", NULL);
|
||||
if (status < 0) {
|
||||
pr_err("twl4030: could not claim irq%d: %d\n", irq_num, status);
|
||||
goto fail_rqirq;
|
||||
|
|
Загрузка…
Ссылка в новой задаче