]> git.baikalelectronics.ru Git - kernel.git/commit
mfd: arizona: Use suspend_noirq inplace of suspend_late
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Tue, 30 Aug 2016 09:33:10 +0000 (10:33 +0100)
committerLee Jones <lee.jones@linaro.org>
Tue, 4 Oct 2016 14:48:03 +0000 (15:48 +0100)
commitc6426b11ba9abe936de9cac624f1c8af372ae9d4
treebd3bf12eeabf5e05b27b199ee9e18d9cac2649b5
parent0a955a1b59e485c9b6236e56f59c27900c135132
mfd: arizona: Use suspend_noirq inplace of suspend_late

As runtime PM doesn't function whilst processing system suspend/resume
operations and the Arizona IRQ handlers need runtime PM to function
we must disable IRQs during these operations. Whilst this is
already done in the driver we are using suspend/suspend_late and
resume/resume_noirq to do so which has two problems. Firstly, as
suspend_late is before suspend_noirq that means we still have a
small window where an IRQ can cause issues.  Secondly, if another
suspend_late handler fails after ours has run then (as resume_noirq
will not run) we will make unbalanced calls to enable_irq.

This is all simply fixed by using the suspend_noirq callback rather
than suspend_late. Whilst we are doing this tidy the code up a little,
and use the appropriate helper macros.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/arizona-core.c