mfd: Fix bus lock interaction for WM831x IRQ set_type() operation
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 2 Jun 2011 18:18:47 +0000 (19:18 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Sun, 31 Jul 2011 21:28:19 +0000 (23:28 +0200)
commitca7a71824ac957b1b9d3322656c05aad38d7275c
treeff89c76b4cda114343c01f332aa28fb80095f3db
parent24c3047095fa3954f114bfff2e37b8fcbb216396
mfd: Fix bus lock interaction for WM831x IRQ set_type() operation

The WM831x IRQ set_type() operation is doing a direct register write when
called but since set_type() is called with the bus lock held this isn't
legal and could cause deadlocks in the IRQ core.

Fix this by posting the updates into an array and syncing in the
bus_sync_unlock() callback.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/wm831x-irq.c
include/linux/mfd/wm831x/core.h