Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 286f8f3c authored by NeilBrown's avatar NeilBrown Committed by Samuel Ortiz
Browse files

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: default avatarNeilBrown <neilb@suse.de>
Tested-by: default avatarFelipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 8f6a459a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -733,7 +733,8 @@ 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,
	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);