linux/drivers/spi
Linus Walleij ffbbdd2132 spi: create a message queueing infrastructure
This rips the message queue in the PL022 driver out and pushes
it into (optional) common infrastructure. Drivers that want to
use the message pumping thread will need to define the new
per-messags transfer methods and leave the deprecated transfer()
method as NULL.

Most of the design is described in the documentation changes that
are included in this patch.

Since there is a queue that need to be stopped when the system
is suspending/resuming, two new calls are implemented for the
device drivers to call in their suspend()/resume() functions:
spi_master_suspend() and spi_master_resume().

ChangeLog v1->v2:
- Remove Kconfig entry and do not make the queue support optional
  at all, instead be more agressive and have it as part of the
  compulsory infrastructure.
- If the .transfer() method is implemented, delete print a small
  deprecation notice and do not start the transfer pump.
- Fix a bitrotted comment.
ChangeLog v2->v3:
- Fix up a problematic sequence courtesy of Chris Blair.
- Stop rather than destroy the queue on suspend() courtesy of
  Chris Blair.

Signed-off-by: Chris Blair <chris.blair@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2012-03-07 19:19:48 -07:00
..
Kconfig spi: add support for Renesas RSPI 2012-03-07 19:18:49 -07:00
Makefile spi: add support for Renesas RSPI 2012-03-07 19:18:49 -07:00
spi-altera.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-ath79.c spi/ath79: fix compile error due to missing include 2011-12-07 21:57:49 +01:00
spi-atmel.c atmel/spi: fix missing probe 2011-11-09 23:02:12 +08:00
spi-au1550.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-bfin5xx.c spi: irq: Remove IRQF_DISABLED 2011-10-24 14:14:40 +02:00
spi-bfin-sport.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-bitbang-txrx.h
spi-bitbang.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-butterfly.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-coldfire-qspi.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-davinci.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-dw-mid.c Merge branch 'dma_slave_direction' into next_test_dirn 2011-11-17 14:54:57 +05:30
spi-dw-mmio.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-dw-pci.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-dw.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-dw.h spi: spi-dw: fix all sparse warnings 2011-09-21 09:41:48 -06:00
spi-ep93xx.c Merge branch 'dma_slave_direction' into next_test_dirn 2011-11-17 14:54:57 +05:30
spi-fsl-espi.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-spi.c spi: Fix WARN when removing spi-fsl-spi module 2011-09-23 17:28:29 -06:00
spi-gpio.c spi/gpio: fix section mismatch warning 2011-12-07 22:17:39 +01:00
spi-imx.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-lm70llp.c
spi-mpc52xx-psc.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-mpc52xx.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-mpc512x-psc.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-nuc900.c spi/nuc900: Remove unnecessary memset of struct nuc900_spi 2012-02-01 17:10:52 -07:00
spi-oc-tiny.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-omap2-mcspi.c spi/omap: Add DT support to McSPI driver 2012-02-15 12:57:00 -07:00
spi-omap-100k.c
spi-omap-uwire.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-orion.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-pl022.c spi: create a message queueing infrastructure 2012-03-07 19:19:48 -07:00
spi-ppc4xx.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-pxa2xx-pci.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-pxa2xx.c
spi-rspi.c spi: add support for Renesas RSPI 2012-03-07 19:18:49 -07:00
spi-s3c24xx-fiq.h
spi-s3c24xx-fiq.S
spi-s3c24xx.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-s3c64xx.c Merge branch 'spi/s3c64xx' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc 2012-01-30 08:32:37 -07:00
spi-sh-msiof.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-sh-sci.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-sh.c spi/spi-sh: add IORESOURCE_MEM_TYPE_MASK decoding for access size 2012-03-07 19:18:45 -07:00
spi-stmp.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-tegra.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi-ti-ssp.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-tle62x0.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-topcliff-pch.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
spi-txx9.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-xilinx.c drivercore: Add helper macro for platform_driver boilerplate 2011-10-25 00:35:47 +02:00
spi.c spi: create a message queueing infrastructure 2012-03-07 19:19:48 -07:00
spidev.c