linux/drivers/spi
Silvester Erdeg 154443c72f atmel_spi: chain DMA transfers
Add support for chained transfers in the atmel_spi driver, letting the DMA
controller switch to the next buffer pair without CPU intervention.  This
reduced I/O latencies by about 2% in one bulk I/O test.  It should also help
work around several interrelated errata affecting chipselect 0 on at91rm9200
chips.

Almost all of the changes are in the reworked atmel_spi_next_xfer() function.
That's now called with the driver in one of three states:

 1. It isn't transferring anything (in which case the first transfer
    of the current message is going to be sent)
 2. It has finished transfering a non-chainable transfer (in which
    case it will go to the next transfer in the message)
 3. It has finished transfering a chained transfer (in which case the
    next transfer is already queued)

After that it will queue the next transfer if it can be chained.

Signed-off-by: Szilveszter Ordog <slipszi@gmail.com>
Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-06 10:41:10 -08:00
..
at25.c spi: at25 driver is for EEPROM not FLASH 2007-12-05 09:21:18 -08:00
atmel_spi.c atmel_spi: chain DMA transfers 2008-02-06 10:41:10 -08:00
atmel_spi.h
au1550_spi.c
Kconfig [ARM] pxa: make pxa2xx_spi driver use ssp_request()/ssp_free() 2008-01-26 15:07:52 +00:00
Makefile
mpc52xx_psc_spi.c [POWERPC] mpc52xx_psc_spi device driver must not touch port_config and cdm 2008-01-26 15:32:19 -07:00
omap2_mcspi.c spi: omap2_mcspi PIO RX fix 2008-01-24 14:06:44 -08:00
omap_uwire.c SPI driver runtime footprint shrinkage 2007-10-16 09:43:09 -07:00
pxa2xx_spi.c [ARM] pxa: make pxa2xx_spi driver use ssp_request()/ssp_free() 2008-01-26 15:07:52 +00:00
spi_bfin5xx.c Remove pointless casts from void pointers 2008-02-06 10:41:01 -08:00
spi_bitbang.c spi_bitbang: always grab lock with irqs blocked 2008-01-08 16:10:35 -08:00
spi_butterfly.c
spi_imx.c Spelling fixes: lenght->length 2008-02-03 15:42:53 +02:00
spi_lm70llp.c spi doesn't need class_device 2007-10-16 09:43:10 -07:00
spi_mpc83xx.c spi_mpc83xx: use brg-frequency for SPI in QE 2008-01-28 08:32:57 -06:00
spi_s3c24xx_gpio.c spi: S3C2410: add bus number to SPI GPIO driver 2007-11-29 09:24:52 -08:00
spi_s3c24xx.c SPI driver runtime footprint shrinkage 2007-10-16 09:43:09 -07:00
spi_txx9.c spi: fix error paths on txx9spi_probe 2007-11-14 18:45:39 -08:00
spi.c spi core: stop updating dev->power.power_state 2008-02-06 10:41:10 -08:00
spidev.c fix abuses of ptrdiff_t 2007-10-29 07:41:33 -07:00
tle62x0.c tle62x0 driver stops ignoring read errors 2007-11-14 18:45:42 -08:00
xilinx_spi.c SPI driver hotplug/coldplug fixes 2007-08-31 01:42:22 -07:00