linux/drivers
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
..
accessibility
acpi ACPI: debugfs custom_method open to non-root 2010-11-13 09:52:16 -08:00
amba
ata SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atm
auxdisplay
base PM: Allow devices to be removed during late suspend and early resume 2010-11-11 01:50:53 +01:00
block BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
bluetooth
cdrom
char BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
clocksource
connector
cpufreq
cpuidle
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-11-13 09:55:56 -08:00
dca
dio
dma
edac
eisa
firewire SCSI host lock push-down 2010-11-16 13:33:23 -08:00
firmware
gpio
gpu BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
hid BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
hwmon hwmon: (w83795) Check for BEEP pin availability 2010-11-15 21:38:57 +01:00
i2c i2c: Sanity checks on adapter registration 2010-11-15 22:40:38 +01:00
ide
idle
ieee802154
infiniband BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
input BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
isdn
leds drivers/leds/leds-gpio.c: properly initialize return value 2010-11-12 07:55:32 -08:00
lguest
macintosh drivers/macintosh/adb-iop.c: flags should be unsigned long 2010-11-12 07:55:30 -08:00
mca
md block: read i_size with i_size_read() 2010-11-10 14:40:53 +01:00
media BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
memstick
message SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mfd
misc i2c: Remove obsolete cleanup for clientdata 2010-11-15 22:40:38 +01:00
mmc
mtd
net BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
nubus
of
oprofile
parisc BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
parport
pci BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
pcmcia drivers/pcmcia/soc_common.c: Use printf extension %pV 2010-11-10 14:31:28 +01:00
platform
pnp BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
power
pps
ps3
rapidio rapidio: use resource_size() 2010-11-12 07:55:30 -08:00
regulator
rtc Merge branches 'sh/rtc' and 'common/clkfwk' into sh/urgent 2010-11-10 18:15:44 +09:00
s390 BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
sbus
scsi BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
serial BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
sfi
sh sh: intc: Fix up build failure introduced by radix tree changes. 2010-11-15 14:30:30 +09:00
sn
spi spi: davinci: always start transmit DMA 2010-11-18 18:38:33 +05:30
ssb
staging BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
tc
telephony
thermal
tty n_gsm: Fix length handling 2010-11-11 11:06:09 -08:00
uio
usb BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
uwb UWB: Return UWB_RSV_ALLOC_NOT_FOUND rather than crashing on NULL dereference if kzalloc fails 2010-11-11 07:14:07 -08:00
vhost
video BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
virtio
vlynq
w1
watchdog
xen BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
zorro BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
Kconfig
Makefile