提交 286f8f3c 编写于 作者: N NeilBrown 提交者: Samuel Ortiz

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: NNeilBrown <neilb@suse.de>
Tested-by: NFelipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
上级 8f6a459a
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册