On Friday 11 April 2014, 17:22:23 wrote Mark Brown:
> 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.

Mh, this seems to related to DMA. I don't have an idea how to work an that.

> 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.

Mh, this driver already uses that.
> master->transfer_one_message = atmel_spi_transfer_one_message;

Or did you mean transfer_one?

Regards,
Alexander

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to