Using spi_async for the accelerometer interrupt data retrieval
simon.kagstrom at gmail.com
Fri Oct 10 11:51:23 CEST 2008
I did a test implementation of the lis302dl interrupt handler using the
spi_async scheme. It doesn't quite work, but I'm sure I've just done
some slight mistake in some place. But I'm still pessimistic about
I took a peek at the implementation, and what spi_async() really boils
down to is a call to spi_bitbang_transfer(), which is in
drivers/spi/spi_bitbang.c. This in turn simply uses a workqueue to
schedule the operations for later. All reg_reads are done this way via
spi_sync, so while the spi_async method should be more efficient than
using a plain workqueue, it still uses the same principle.
The race condition is still there as it depends on the workqueue.
I'll see if I can get a working version as well :-)
More information about the openmoko-kernel