1
0
Fork 0
alistair23-linux/drivers/spi
Ned Forrester b97c74bddc spi: pxa2xx_spi clock polarity fix
Fixes a sequencing bug in spi driver pxa2xx_spi.c in which the chip select
for a transfer may be asserted before the clock polarity is set on the
interface.  As a result of this bug, the clock signal may have the wrong
polarity at transfer start, so it may need to make an extra half transition
before the intended clock/data signals begin.  (This probably means all
transfers are one bit out of sequence.)

This only occurs on the first transfer following a change in clock polarity
in systems using more than one more than one such polarity.  The fix
assures that the clock mode is properly set before asserting chip select.

This bug was introduced in a patch merged on 2006/12/10, kernel 2.6.20.
The patch defines an additional bit in: include/asm-arm/arch-pxa/regs-ssp.h
for 2.6.25 and newer kernels but this addition must be made in:
include/asm-arm/arch-pxa/pxa-regs.h for kernels between 2.6.20 and 2.6.24,
inclusive

Signed-off-by: Ned Forrester <nforrester@whoi.edu>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-23 17:12:14 -08:00
..
Kconfig spi: omap2_mcspi handles omap3 too 2008-02-06 10:41:11 -08:00
Makefile spi: SuperH SPI using SCI 2008-02-06 10:41:11 -08:00
at25.c spi: at25 driver is for EEPROM not FLASH 2007-12-05 09:21:18 -08:00
atmel_spi.c atmel_spi: fix clock polarity 2008-02-23 17:12:14 -08:00
atmel_spi.h [PATCH] SPI: atmel_spi driver 2007-02-14 08:09:53 -08:00
au1550_spi.c SPI controller drivers: check for unsupported modes 2007-07-17 10:23:04 -07:00
mpc52xx_psc_spi.c [POWERPC] mpc52xx_psc_spi device driver must not touch port_config and cdm 2008-01-26 15:32:19 -07:00
omap2_mcspi.c spi: omap2_mcspi handles omap3 too 2008-02-06 10:41:11 -08:00
omap_uwire.c SPI driver runtime footprint shrinkage 2007-10-16 09:43:09 -07:00
pxa2xx_spi.c spi: pxa2xx_spi clock polarity fix 2008-02-23 17:12:14 -08:00
spi.c spi core: stop updating dev->power.power_state 2008-02-06 10:41:10 -08:00
spi_bfin5xx.c spi_bfin: headers are not for changelogs 2008-02-06 10:41:11 -08:00
spi_bitbang.c spi_bitbang: always grab lock with irqs blocked 2008-01-08 16:10:35 -08:00
spi_butterfly.c minor spi_butterfly cleanup 2007-05-08 11:15:15 -07:00
spi_imx.c spi: remove more dev->power.power_state usage 2008-02-06 10:41:11 -08:00
spi_lm70llp.c spi doesn't need class_device 2007-10-16 09:43:10 -07:00
spi_mpc83xx.c spi_mpc83xx: use brg-frequency for SPI in QE 2008-01-28 08:32:57 -06:00
spi_s3c24xx.c spi: s3c drivers shouldn't care about spi_board_info 2008-02-06 10:41:11 -08:00
spi_s3c24xx_gpio.c spi: s3c drivers shouldn't care about spi_board_info 2008-02-06 10:41:11 -08:00
spi_sh_sci.c spi: SuperH SPI using SCI 2008-02-06 10:41:11 -08:00
spi_txx9.c spi: fix error paths on txx9spi_probe 2007-11-14 18:45:39 -08:00
spidev.c fix abuses of ptrdiff_t 2007-10-29 07:41:33 -07:00
tle62x0.c tle62x0 driver stops ignoring read errors 2007-11-14 18:45:42 -08:00
xilinx_spi.c SPI driver hotplug/coldplug fixes 2007-08-31 01:42:22 -07:00