Sorry about the incomplete message. Finger trouble. On 4/25/10, Martin Guy <martinw...@gmail.com> wrote: ... > SFRMOUT will have gone high:
> if (espi->tx >0 && espi->tx < t->len && !(ep93xx_spi_read_u16(espi, SSPSR) & SSPSR_BSY)) { > /* More to transmit but device has gone idle means that > * SFRMOUT will have gone high */ > printk("ep93xx-spi: Underrun\n"); > } I've also done a version that doesn't printk() in the middle of it, which affects timing, but counts the underruns and reports at end of transfer. The result is that every 512-byte block underruns at least once, sometimes twice. I'll run a few more tests, e.g. dropping the clock rate, but at this point I'd be inclined to declare it impossible to keep SFRMOUT low during a transfer, and just use the simple non-continuous code with a comment at the top of the file that explains why you can't use SFRMOUT as a chip select for devices that require CS to remain asserted for the duration of a transfer. M ------------------------------------------------------------------------------ _______________________________________________ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general