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

Reply via email to