pcf50633: use a dedicated workqueue for irq processing
authorPaul Fertser <fercerpav@gmail.com>
Mon, 27 Jul 2009 20:41:15 +0000 (00:41 +0400)
committerPaul Fertser <fercerpav@gmail.com>
Sun, 2 Aug 2009 07:27:18 +0000 (11:27 +0400)
commit21658522b00d047212d7a78cb749648ff3bfeb04
tree6b85e76c023c1c915c5e03ea61e986e2f10711b2
parentbcdf6f7109ea494ca84a3baea3a3c563dca9f68b
pcf50633: use a dedicated workqueue for 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>
drivers/mfd/pcf50633-core.c
include/linux/mfd/pcf50633/core.h