]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit - drivers/mfd/twl4030-irq.c
mfd: twl4030: Fix chained irq handling on resume from suspend
authorKalle Jokiniemi <kalle.jokiniemi@jollamobile.com>
Tue, 16 Oct 2012 14:59:35 +0000 (17:59 +0300)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 21 Nov 2012 16:46:41 +0000 (17:46 +0100)
commit8b41669ceba0c2d4c09d69ccb9a3458953dae784
tree01a1e4f1405fda435053ae7368c99df92ded1b15
parent46b9d13aaec19dfbd5882a999e8ed85fc97a751e
mfd: twl4030: Fix chained irq handling on resume from suspend

The irqs are enabled one-by-one in pm core resume_noirq phase.
This leads to situation where the twl4030 primary interrupt
handler (PIH) is enabled before the chained secondary handlers
(SIH). As the PIH cannot clear the pending interrupt, and
SIHs have not been enabled yet, a flood of interrupts hangs
the device.

Fixed the issue by setting the SIH irqs with IRQF_EARLY_RESUME
flags, so they get enabled before the PIH.

Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@jollamobile.com>
Acked-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/twl4030-irq.c