OpenWrt – Rev 1

Subversion Repositories:
Rev:
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -181,6 +181,13 @@ config SPI_CLPS711X
          This enables dedicated general purpose SPI/Microwire1-compatible
          master mode interface (SSI1) for CLPS711X-based CPUs.
 
+config SPI_CNS3XXX
+       tristate "CNS3XXX SPI controller"
+       depends on ARCH_CNS3XXX && SPI_MASTER
+       select SPI_BITBANG
+       help
+         This enables using the CNS3XXX SPI controller in master mode.
+
 config SPI_COLDFIRE_QSPI
        tristate "Freescale Coldfire QSPI controller"
        depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_BITBANG)             += spi-bitban
 obj-$(CONFIG_SPI_BUTTERFLY)            += spi-butterfly.o
 obj-$(CONFIG_SPI_CADENCE)              += spi-cadence.o
 obj-$(CONFIG_SPI_CLPS711X)             += spi-clps711x.o
+obj-$(CONFIG_SPI_CNS3XXX)              += spi-cns3xxx.o
 obj-$(CONFIG_SPI_COLDFIRE_QSPI)                += spi-coldfire-qspi.o
 obj-$(CONFIG_SPI_DAVINCI)              += spi-davinci.o
 obj-$(CONFIG_SPI_DLN2)                 += spi-dln2.o
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -795,6 +795,10 @@ struct spi_transfer {
        u32             speed_hz;
 
        struct list_head transfer_list;
+
+#ifdef CONFIG_ARCH_CNS3XXX
+       unsigned        last_in_message_list;
+#endif
 };
 
 /**
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1018,6 +1018,9 @@ static int spi_transfer_one_message(stru
        list_for_each_entry(xfer, &msg->transfers, transfer_list) {
                trace_spi_transfer_start(msg, xfer);
 
+               xfer->last_in_message_list =
+                       list_is_last(&xfer->transfer_list, &msg->transfers);
+
                spi_statistics_add_transfer_stats(statm, xfer, ctlr);
                spi_statistics_add_transfer_stats(stats, xfer, ctlr);