kernel-ark/drivers/spi
Ned Forrester 7e96445533 pxa2xx_spi: dma bugfixes
Fixes two DMA bugs in the pxa2xx_spi driver.  The first bug is in all
versions of this driver; the second was introduced in the 2.6.20 kernel,
and prevents using the driver with chips like m25p16 flash (which can
issue large DMA reads).

 1. Zero length transfers are permitted for use to insert timing,
    but pxa2xx_spi.c will fail if this is requested in DMA mode.
    Fixed by using programmed I/O (PIO) mode for such transfers.

 2. Transfers larger than 8191 are not permitted in DMA mode.  A
    test for length rejects all large transfers regardless of DMA
    or PIO mode.  Worked around by rejecting only large transfers
    with DMA mapped buffers, and forcing all other transfers
    larger than 8191 to use PIO mode.  A rate limited warning is
    issued for DMA transfers forced to PIO mode.

This patch should apply to all kernels back to and including 2.6.20;
it was test patched against 2.6.20.  An additional patch would be
required for older kernels, but those versions are very buggy anyway.

Signed-off-by: Ned Forrester <nforrester@whoi.edu>
Cc: Vernon Sauder <vernoninhand@gmail.com>
Cc: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-09-13 14:41:52 -07:00
..
at25.c spi: at25 driver is for EEPROM not FLASH 2007-12-05 09:21:18 -08:00
atmel_spi.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
atmel_spi.h [PATCH] SPI: atmel_spi driver 2007-02-14 08:09:53 -08:00
au1550_spi.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
Kconfig spi: new orion_spi driver 2008-08-05 14:33:46 -07:00
Makefile spi: new orion_spi driver 2008-08-05 14:33:46 -07:00
mpc52xx_psc_spi.c mpc52xx_psc_spi: fix block transfer 2008-07-28 16:30:21 -07:00
omap2_mcspi.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
omap_uwire.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
orion_spi.c spi: new orion_spi driver 2008-08-05 14:33:46 -07:00
pxa2xx_spi.c pxa2xx_spi: dma bugfixes 2008-09-13 14:41:52 -07:00
spi_bfin5xx.c spi_bfin5xx: use PIO for full duplex, not DMA 2008-05-01 08:04:01 -07:00
spi_bitbang.c spi: replace remaining __FUNCTION__ occurrences 2008-04-28 08:58:31 -07:00
spi_butterfly.c minor spi_butterfly cleanup 2007-05-08 11:15:15 -07:00
spi_imx.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
spi_lm70llp.c spi doesn't need class_device 2007-10-16 09:43:10 -07:00
spi_mpc83xx.c spi_mpc83xx: reject invalid transfer sizes 2008-09-13 14:41:51 -07:00
spi_s3c24xx_gpio.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
spi_s3c24xx.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
spi_sh_sci.c spi: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -07:00
spi_txx9.c spi: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -07:00
spi.c spi: bugfix spi_add_device() with duplicate chipselects 2008-08-15 08:35:44 -07:00
spidev.c spidev: BKL removal 2008-07-24 10:47:30 -07:00
tle62x0.c tle62x0 driver stops ignoring read errors 2007-11-14 18:45:42 -08:00
xilinx_spi.c xilinx_spi: test below 0 on unsigned irq in xilinx_spi_probe() 2008-07-24 10:47:30 -07:00