Stephen, Do you have a version of the PXA2xx SPI contoller driver more recent that the one posted at the end of October 2005? There are some SPI (and other) API changes required for 2.6.16-rc1. I've attached my attempt (PIO works but DMA doesn't) if it's of any use. The patch also: - includes support for the different clock on the PXA27x - calculates the correct clock divisor (at least on the PXA27x...) - allows null_cs_control for PIO transfer. I'm currently using SSP3 on the PXA27x with the slave chip select GPIO line configured as SSPSFRM3 instead of a GPIO. This works fine provided that each spi_message consists of a single spi_transfer. With more than one transfer they're not back-to-back and SSPSFRM3 is deasserted between transfers. It looks like you're waiting for the transmit buffer in the controller to empty before switching to the next transfer. Is it possible to switch to the next transfer immediatly upon exhausting the transfer's tx_buf? Perhaps (in the DMA case) by chaining several DMA descriptors together? At the higher SPI clock rates available on the PXA27x (up to 13 MHz with the internal clock) PIO mode doesn't seem to feed the transmit buffer fast enough resulting in gaps between each byte/word of the transfer. I would assume using DMA would not show this? David Vrabel -- David Vrabel, Design Engineer Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/