mfd: use a dedicated workqueue for pcf50633 irq processing
authorPaul Fertser <fercerpav@gmail.com>
Mon, 27 Jul 2009 20:41:15 +0000 (00:41 +0400)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 17 Sep 2009 07:46:53 +0000 (09:46 +0200)
commited52e62ebec9e703eb0b69704feaf1b6e847d882
tree71f81470bf569105a09f9b330bf68ba428236f06
parent9c3664ddcee8d56c54bc6a735bbc3cf77723d85d
mfd: use a dedicated workqueue for pcf50633 irq processing

Using the default kernel "events" workqueue causes problems with
synchronous adc readings if initiated from some task on the same
workqueue.

I had a deadlock trying to use pcf50633_adc_sync_read from a
power_supply class driver because the reading was initiated from the
workqueue and it waited for the irq processing to complete (to get the
result) and that was put on the same workqueue.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/pcf50633-core.c
include/linux/mfd/pcf50633/core.h