lkml.org 
[lkml]   [2008]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH] atmel_spi: fix hang due to missed interrupt
Date
Hi there

> -----Original Message-----
> From: Haavard Skinnemoen [mailto:haavard.skinnemoen@atmel.com]
> Sent: Friday, August 01, 2008 6:50 AM
>
> Haavard Skinnemoen <haavard.skinnemoen@atmel.com> wrote:
> > spi_writel(as, RNCR, 0);
> > spi_writel(as, TNCR, 0);

> These writes are also completely pointless -- RNCR is zeroed
> automatically after it gets shifted into RCR.

While looking at the patch yesterday I was thinking the same thing. Now it
bugs me that this observation didn't occur when I was working on this
problem. Maybe the code symmetry makes it look "correct".

> Actually, I think the real bug happens right here

You're probably correct. A race condition that intermittently clears a
pending interrupt fits the observed symptom.


> As for the overruns, I'm beginning to suspect that the only way to get
> rid of those and still maintain a reasonable transfer rate is to use
> bounce buffers in faster RAM (e.g. on-chip SRAM).

For my at91sam9260 board, I eliminated one cause of SPI overruns by lowering
the interrupt priorities of the six USARTs (default was 5, changed to 4)
relative to the two SPI controllers (default is 5). The test I used for
this issue is 'ls -lR' on the flash filesystem.

Regards -- Gerard



\
 
 \ /
  Last update: 2008-08-01 22:17    [W:0.032 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site