alistair23-linux/drivers/mtd
H Hartley Sweeten 0ffe0ce36e mtd: sst25l: fix multi-part messages with broken spi masters
Some SPI masters (ep93xx) have limitations when using the SFRMOUT
signal for the spi device chip select.  The SFRMOUT signal is
only asserted as long as the spi transmit fifo contains data.  As
soon as the last bit is clocked into the receive fifo it gets
deasserted.

The functions sst25l_status and sst25l_match_device use the API
function spi_write_then_read to write a command to the flash then
read the response back.  This API function creates a two part spi
message for the write then read.  When this message is transferred
the SFRMOUT signal ends up getting deasserted after the command
phase.  This causes the command to get aborted by the device so
the read phase returns invalid data.

By changing sst25l_status and sst25l_match_device to use a single
transfer synchronous message, the SFRMOUT signal stays asserted
during the entire message so the correct data always gets returned.

This change will have no effect on SPI masters which use a chip
select mechanism (GPIO's, etc.) which does stay asserted correctly.
As a bonus, the single transfer synchronous messages complete faster
than multi-part messages.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2010-05-14 01:52:24 +01:00
..
chips mtd: jedec_probe: remove spaces before tabs 2010-05-14 01:49:03 +01:00
devices mtd: sst25l: fix multi-part messages with broken spi masters 2010-05-14 01:52:24 +01:00
lpddr drivers/mtd: Use kzalloc 2010-05-13 21:23:06 +01:00
maps mtd: extend physmap_of to let the device tree specify the parition probe 2010-05-14 00:32:30 +01:00
nand mtd: orion/kirkwood: add RnB line support to orion mtd driver 2010-05-14 01:04:19 +01:00
onenand mtd: add Samsung SoC OneNAND driver 2010-05-14 01:51:20 +01:00
tests drivers/mtd: Use kzalloc 2010-05-13 21:23:06 +01:00
ubi 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
afs.c
ar7part.c
cmdlinepart.c
ftl.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00
inftlcore.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-03-26 14:55:59 +00:00
inftlmount.c mtd: inftl: misplaced parenthesis in find_boot_record 2010-02-26 13:22:07 +00:00
Kconfig mtd: sm_ftl: remove CONFIG_SM_FTL_MUSEUM and make it always on 2010-03-26 15:28:59 +00:00
Makefile Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
mtd_blkdevs.c mtd: blktrans: do blk_cleanup_queue when it is really safe to do so 2010-03-08 18:57:42 -08:00
mtdblock.c mtd: Few follow up cleanups for Smartmedia/xD support 2010-02-26 20:13:49 +00:00
mtdblock_ro.c mtd: mtdblock: test return value of add_mtd_blktrans_dev, because if can fail 2010-02-26 17:05:46 +00:00
mtdchar.c mtdchar: Register the full range of minor numbers 2010-02-25 12:46:04 +00:00
mtdconcat.c
mtdcore.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
mtdcore.h mtd: Replace static array of devices with an idr structure 2010-02-25 11:55:14 +00:00
mtdoops.c mtd: Remove unnecessary comparisons with MAX_MTD_DEVICES 2010-02-25 11:39:09 +00:00
mtdpart.c
mtdsuper.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
nftlcore.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00
nftlmount.c
ofpart.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
redboot.c
rfd_ftl.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00
sm_ftl.c bitops: rename for_each_bit() to for_each_set_bit(): mtd 2010-04-08 09:42:41 +01:00
sm_ftl.h mtd: Add new SmartMedia/xD FTL 2010-02-26 19:06:50 +00:00
ssfdc.c mtd: blktrans: Hotplug fixes 2010-02-26 17:05:26 +00:00