android_kernel_oneplus_msm8998/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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
coldfire_qspi.c m68knommu: include sched.h in ColdFire/SPI driver 2010-08-18 12:44:31 +10:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dw_spi_pci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ep93xx_spi.c spi/ep93xx: implemented driver for Cirrus EP93xx SPI controller 2010-05-25 00:23:16 -06:00
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 of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mpc52xx_spi.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mpc512x_psc_spi.c Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2010-08-14 11:54:09 -07:00
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 SPI100k: Fix 8-bit and RX-only transfers 2010-07-03 22:45:44 -06:00
omap_uwire.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
orion_spi.c spi/orion: Drop unnecessary null test 2010-09-29 17:31:29 +09:00
pxa2xx_spi.c [ARM] pxa: add namespace on ssp 2010-05-11 17:25:06 +02:00
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: reinitialize transfer parameters for every message 2010-07-03 22:59:18 -06:00
spi_bitbang_txrx.h spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_butterfly.c spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
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/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_nuc900.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi_ppc4xx.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
spi_s3c24xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09: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 spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_s3c64xx.c spi/s3c64xx: Correction for 16,32 bits bus width 2010-09-29 17:31:33 +09:00
spi_sh_msiof.c Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2010-02-25 15:38:03 -08:00
spi_sh_sci.c spi/bitbang: add support for SPI_MASTER_NO_{TX, RX} modes 2010-07-03 22:45:44 -06:00
spi_stmp.c spi: Fix reversed args to time_before() in Freescale stmp driver. 2010-01-20 13:49:44 -07:00
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 Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 2009-12-17 15:59:05 -08:00
spidev.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
tle62x0.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
xilinx_spi.c of/spi: call of_register_spi_devices() from spi core code 2010-07-30 00:03:59 -06:00
xilinx_spi.h xilinx_spi: Split into of driver and generic part. 2009-12-08 18:48:14 -07:00
xilinx_spi_of.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06: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