linux/drivers/spi
Brian Niebuhr c29e3c60e7 spi: davinci: always start transmit DMA
Due to the full duplex nature of the SPI bus, the SPI master
on DaVinci needs transmit to be active even if the tranfer is
only meant to collect receive data.

The current code achieves this by using a temporary zeroed buffer
to provide DMA data in case the transfer does not have a transmit
buffer provided.

However, the transmit DMA is started only if transmit buffer is
provided rendering the temporary buffer unused. Instead the code
relies on a write to SPIDAT1 register to trigger transmit operation.
This however only sends two bytes of data.

Fix this by starting transmit DMA always.

This changes exposes a bug on DM355 where the CSHOLD bit in
SPIDAT1 needs to be written to in between transfers. Handle
that by introducing a "cshold_bug" platform data which is
set to true for DM355.

Signed-off-by: Brian Niebuhr <bniebuhr@efjohnson.com>
Tested-By: Michael Williamson <michael.williamson@criticallink.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2010-11-18 18:38:33 +05:30
..
amba-pl022.c spi/pl022: fix dubious allocation staticize platform data 2010-10-12 21:37:37 -06:00
atmel_spi.c spi/atmel: typo in debug message 2010-10-15 21:56:00 -06:00
atmel_spi.h
au1550_spi.c
coldfire_qspi.c
davinci_spi.c spi: davinci: always start transmit DMA 2010-11-18 18:38:33 +05:30
dw_spi.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
dw_spi_mmio.c
dw_spi_pci.c
ep93xx_spi.c
Kconfig spi: add spi_tegra driver 2010-10-21 18:15:05 -07:00
Makefile spi: add spi_tegra driver 2010-10-21 18:15:05 -07:00
mpc52xx_psc_spi.c
mpc52xx_spi.c
mpc512x_psc_spi.c
omap2_mcspi.c spi/omap2_mcspi: Verify TX reg is empty after TX only xfer with DMA 2010-10-20 10:43:24 -06:00
omap_spi_100k.c
omap_uwire.c
orion_spi.c
pxa2xx_spi.c
spi.c spi: fixed odd static string conventions in core code 2010-10-22 09:51:05 -06:00
spi_bfin5xx.c spi/bfin_spi: only request GPIO on first load 2010-10-22 01:26:46 -06:00
spi_bitbang.c
spi_bitbang_txrx.h
spi_butterfly.c
spi_fsl_espi.c spi/fsl_spi: add eSPI controller support 2010-10-12 21:38:12 -06:00
spi_fsl_lib.c spi/mpc8xxx: refactor the common code for SPI/eSPI controller 2010-10-12 21:38:12 -06:00
spi_fsl_lib.h spi/fsl_spi: Fix compile errors when building on ppc64 2010-10-14 08:30:12 -06:00
spi_fsl_spi.c spi/mpc8xxx: refactor the common code for SPI/eSPI controller 2010-10-12 21:38:12 -06:00
spi_gpio.c spi: spi-gpio.c tests SPI_MASTER_NO_RX bit twice, but not SPI_MASTER_NO_TX 2010-10-02 21:09:08 -06:00
spi_imx.c spi/imx: Support different fifo sizes 2010-10-11 16:12:22 +02:00
spi_lm70llp.c
spi_nuc900.c
spi_ppc4xx.c
spi_s3c24xx.c
spi_s3c24xx_fiq.h
spi_s3c24xx_fiq.S
spi_s3c24xx_gpio.c
spi_s3c64xx.c spi/s3c64xx: Correction for 16,32 bits bus width 2010-09-29 17:31:33 +09:00
spi_sh_msiof.c
spi_sh_sci.c
spi_stmp.c
spi_tegra.c spi: tegra: fix error setting on timeout 2010-10-25 16:57:46 -07:00
spi_topcliff_pch.c spi/topcliff: Fix uninitialized variable defect 2010-10-13 23:03:15 -06:00
spi_txx9.c
spidev.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
tle62x0.c
xilinx_spi.c
xilinx_spi.h
xilinx_spi_of.c
xilinx_spi_pltfm.c