On Fri, Apr 11, 2014 at 03:25:43PM +0200, Alexander Stein wrote: > Currently, I can't figure out why this happens. It's a plain v3.14 > kernel with some own patches which don't affect SPI. It's because atmel_spi_lock() is a spinlock and we're waiting for the transfer in transfer_one(). Either the scope of the lock needs to be dramatically reduced or the lock needs to become something we can hold while scheduling like a mutex. Converting to use the core transfer_one_message() would also help, we could then return from the transfer function and have the core implement the wait for the completion.
Attachment:
signature.asc
Description: Digital signature