help
This is the SPI controller master driver for Blackfin 5xx processor.
- --config SPI_BFIN_V3
- -- tristate "SPI controller v3 for Blackfin"
+ ++config SPI_ADI_V3
+ ++ tristate "SPI controller v3 for ADI"
depends on BF60x
help
This is the SPI controller v3 master driver
inexpensive battery powered microcontroller evaluation board.
This same cable can be used to flash new firmware.
+++ config SPI_CADENCE
+++ tristate "Cadence SPI controller"
+++ depends on ARM
+++ help
+++ This selects the Cadence SPI controller master driver
+++ used by Xilinx Zynq.
+++
config SPI_CLPS711X
tristate "CLPS711X host SPI controller"
depends on ARCH_CLPS711X || COMPILE_TEST
config SPI_TOPCLIFF_PCH
tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
--- depends on PCI
+++ depends on PCI && (X86_32 || COMPILE_TEST)
help
SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
used in some x86 embedded processors.
obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o
obj-$(CONFIG_SPI_BCM63XX_HSSPI) += spi-bcm63xx-hsspi.o
obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o
- --obj-$(CONFIG_SPI_BFIN_V3) += spi-bfin-v3.o
+ ++obj-$(CONFIG_SPI_ADI_V3) += spi-adi-v3.o
obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o
obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o
obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o
+++ obj-$(CONFIG_SPI_CADENCE) += spi-cadence.o
obj-$(CONFIG_SPI_CLPS711X) += spi-clps711x.o
obj-$(CONFIG_SPI_COLDFIRE_QSPI) += spi-coldfire-qspi.o
obj-$(CONFIG_SPI_DAVINCI) += spi-davinci.o
struct platform_device *pdev;
struct spi_transfer *current_transfer;
-- - unsigned long current_remaining_bytes;
++ + int current_remaining_bytes;
int done_status;
struct completion xfer_completion;
spi_readl(as, RDR);
}
if (xfer->bits_per_word > 8) {
-- - as->current_remaining_bytes -= 2;
-- - if (as->current_remaining_bytes < 0)
++ + if (as->current_remaining_bytes > 2)
++ + as->current_remaining_bytes -= 2;
++ + else
as->current_remaining_bytes = 0;
} else {
as->current_remaining_bytes--;
atmel_spi_next_xfer_pio(master, xfer);
} else {
as->current_remaining_bytes -= len;
++ + if (as->current_remaining_bytes < 0)
++ + as->current_remaining_bytes = 0;
}
} else {
atmel_spi_next_xfer_pio(master, xfer);
}
+++ /* interrupts are disabled, so free the lock for schedule */
+++ atmel_spi_unlock(as);
ret = wait_for_completion_timeout(&as->xfer_completion,
SPI_DMA_TIMEOUT);
+++ atmel_spi_lock(as);
if (WARN_ON(ret == 0)) {
dev_err(&spi->dev,
"spi trasfer timeout, err %d\n", ret);