kernel_optimize_test/drivers/spi
Ben Nizette 6aed4ee9b4 atmel_spi: fix dma addr calculation for len > BUFFER_SIZE
If len > BUFFER_LEN and !xfer->rx_buf we end up calculating the tx buffer
address as

*tx_dma = xfer->tx_dma + xfer->len - BUFFER_SIZE;

which is constant; i.e.  we just send the last BUFFER_SIZE data over again
until we've reached the right number of bytes.

This patch gets around this by using the /requested/ length when
calculating addresses.

Note there's no way len != *plen when we calculate the rx buffer address
but conceptually we should be using *plen and I don't want someone to come
through later, see the calculations for rx and tx are different and "clean
up" back to what we had.

Signed-off-by: Ben Nizette <bn@niasdigital.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2009-12-17 08:57:07 -07:00
..
amba-pl022.c ARM: 5741/1: pl022: fix peripheral id for ST vendor 2009-10-05 17:55:55 +01:00
atmel_spi.c atmel_spi: fix dma addr calculation for len > BUFFER_SIZE 2009-12-17 08:57:07 -07:00
atmel_spi.h [PATCH] SPI: atmel_spi driver 2007-02-14 08:09:53 -08:00
au1550_spi.c spi/au1550_spi: fix setupxfer not to override cfg with zeros 2009-12-08 18:48:16 -07:00
dw_spi_pci.c spi: controller driver for Designware SPI core 2009-12-17 08:39:13 -07:00
dw_spi.c spi: controller driver for Designware SPI core 2009-12-17 08:39:13 -07:00
Kconfig spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
Makefile spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
mpc52xx_psc_spi.c spi/mpc52xx: replace printk with dev_err 2009-11-04 16:42:47 -07:00
mpc52xx_spi.c spi/mpc52xx-spi: minor cleanups 2009-12-08 18:48:15 -07:00
omap_spi_100k.c Add OMAP spi100k driver 2009-12-13 01:02:11 -07:00
omap_uwire.c trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
omap2_mcspi.c spi: McSPI support for OMAP4 2009-09-23 07:39:44 -07:00
orion_spi.c spi: move more spi_setup() functionality into core 2009-06-18 13:03:42 -07:00
pxa2xx_spi.c Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
spi_bfin5xx.c spi: move more spi_setup() functionality into core 2009-06-18 13:03:42 -07:00
spi_bitbang.c spi: bitbang bugfix in message setup 2009-06-30 18:56:00 -07:00
spi_butterfly.c spi: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
spi_gpio.c spi-gpio: allow operation without CS signal 2009-04-02 19:04:51 -07:00
spi_imx.c spi: fix probe/remove section markings 2009-12-13 01:03:12 -07:00
spi_lm70llp.c hwmon: (lm70) Code streamlining and cleanup 2009-01-07 16:37:34 +01:00
spi_mpc8xxx.c spi/mpc8xxx: don't use __exit_p to wrap plat_mpc8xxx_spi_remove 2009-12-08 18:48:16 -07:00
spi_nuc900.c ARM: NUC900: Add spi driver support for nuc900 2009-12-13 00:58:00 -07:00
spi_ppc4xx.c spi: add spi_ppc4xx driver 2009-09-23 07:39:43 -07:00
spi_s3c24xx_fiq.h spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
spi_s3c24xx_fiq.S spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
spi_s3c24xx_gpio.c [ARM] S3C24XX: GPIO: Move gpio functions out of <mach/hardware.h> 2009-05-18 16:25:40 +01:00
spi_s3c24xx.c spi_s3c24xx: add FIQ pseudo-DMA support 2009-12-17 08:57:01 -07:00
spi_sh_msiof.c spi: SuperH MSIOF SPI Master driver V2 2009-12-13 00:48:27 -07:00
spi_sh_sci.c spi: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -07:00
spi_stmp.c spi: Freescale STMP driver 2009-09-23 07:39:44 -07:00
spi_txx9.c spi: move more spi_setup() functionality into core 2009-06-18 13:03:42 -07:00
spi.c spi: handle TX-only/RX-only 2009-09-23 07:39:44 -07:00
spidev.c spidev: add proper section markers 2009-12-17 08:39:12 -07:00
tle62x0.c spi: prefix modalias with "spi:" 2009-09-23 07:39:43 -07:00
xilinx_spi_of.c xilinx_spi: add support for the DS570 IP. 2009-12-08 18:48:14 -07:00
xilinx_spi_pltfm.c xilinx_spi: add a platform driver using the xilinx_spi common module. 2009-12-08 18:48:14 -07:00
xilinx_spi.c spi/xilinx_spi: fix incorrect casting 2009-12-08 18:48:15 -07:00
xilinx_spi.h xilinx_spi: Split into of driver and generic part. 2009-12-08 18:48:14 -07:00