linux/drivers/spi
Bryan Freed b0b36b861e spi: Unlock a spinlock before calling into the controller driver.
spi_pump_messages() calls into a controller driver with
unprepare_transfer_hardware() which is documented as "This may sleep".
As in the prepare_transfer_hardware() call below, we should release the
queue_lock spinlock before making the call.
Rework the logic a bit to hold queue_lock to protect the 'busy' flag,
then release it to call unprepare_transfer_hardware().

Signed-off-by: Bryan Freed <bfreed@chromium.org>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-01 14:22:59 +01:00
..
Kconfig Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
Makefile spi/pxa2xx: add support for DMA engine 2013-02-08 12:15:28 +00:00
spi-altera.c spi: remove check for bits_per_word on transfer from low level driver 2013-02-05 12:26:59 +00:00
spi-ath79.c spi/ath79: add shutdown handler 2013-02-06 10:41:12 +00:00
spi-atmel.c spi: Remove erroneous __init, __exit and __exit_p() references in drivers 2013-02-05 14:43:16 +00:00
spi-au1550.c spi: Remove erroneous __init, __exit and __exit_p() references in drivers 2013-02-05 14:43:16 +00:00
spi-bcm63xx.c spi/bcm63xx: don't disable non enabled clocks in probe error path 2013-03-12 19:11:31 +00:00
spi-bfin5xx.c spi: Remove erroneous __init, __exit and __exit_p() references in drivers 2013-02-05 14:43:16 +00:00
spi-bfin-sport.c spi: remove check for bits_per_word on transfer from low level driver 2013-02-05 12:26:59 +00:00
spi-bitbang-txrx.h spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-bitbang.c Merge branch 'broonie/spi-next' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc.git 2013-02-05 12:30:13 +00:00
spi-butterfly.c spi: Add module.h to implicit users in drivers/spi 2011-10-31 19:32:17 -04:00
spi-clps711x.c spi: remove check for bits_per_word on transfer from low level driver 2013-02-05 12:26:59 +00:00
spi-coldfire-qspi.c spi: remove check for bits_per_word on transfer from low level driver 2013-02-05 12:26:59 +00:00
spi-davinci.c spi/davinci: use request_threaded_irq() to fix deadlock 2013-02-05 17:12:26 +00:00
spi-dw-mid.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
spi-dw-mmio.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-dw-pci.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-dw.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-dw.h spi: spi-dw: fix all sparse warnings 2011-09-21 09:41:48 -06:00
spi-ep93xx.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
spi-falcon.c spi/mips-lantiq: set SPI_MASTER_HALF_DUPLEX flag 2013-02-05 17:16:55 +00:00
spi-fsl-espi.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-fsl-lib.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-fsl-lib.h spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-fsl-spi.c gpio: Make of_count_named_gpios() use new of_count_phandle_with_args() 2013-02-13 10:11:53 +00:00
spi-gpio.c spi: spi-gpio: Add checks for the dt properties 2013-01-26 15:35:56 +08:00
spi-imx.c spi/imx: Add MODULE_ALIAS() 2013-02-05 13:17:12 +00:00
spi-lm70llp.c spi: By default setup spi_masters with 1 chipselect and dynamics bus number 2012-05-19 23:42:08 -06:00
spi-mpc52xx-psc.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-mpc52xx.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-mpc512x-psc.c spi/spi-mpc512x-psc: init mode bits supported by the driver 2013-02-05 14:44:12 +00:00
spi-mxs.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
spi-nuc900.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-oc-tiny.c gpio: Make of_count_named_gpios() use new of_count_phandle_with_args() 2013-02-13 10:11:53 +00:00
spi-octeon.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-omap2-mcspi.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
spi-omap-100k.c spi: Remove erroneous __init, __exit and __exit_p() references in drivers 2013-02-05 14:43:16 +00:00
spi-omap-uwire.c spi: Remove erroneous __init, __exit and __exit_p() references in drivers 2013-02-05 14:43:16 +00:00
spi-orion.c spi/orion: Use module_platform_driver() 2013-02-05 14:44:14 +00:00
spi-pl022.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-ppc4xx.c Device tree changes for v3.9 2013-02-20 11:04:46 -08:00
spi-pxa2xx-dma.c spi/pxa2xx: add support for DMA engine 2013-02-08 12:15:28 +00:00
spi-pxa2xx-pci.c spi/pxa2xx: embed the ssp_device to platform data 2013-01-08 11:00:32 +00:00
spi-pxa2xx-pxadma.c spi/pxa2xx: break out the private DMA API usage into a separate file 2013-02-08 12:15:21 +00:00
spi-pxa2xx.c spi/pxa2xx: add support for Lynxpoint SPI controllers 2013-02-08 13:15:34 +00:00
spi-pxa2xx.h spi/pxa2xx: add support for Intel Low Power Subsystem SPI 2013-02-08 13:14:40 +00:00
spi-rspi.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-s3c24xx-fiq.h spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-s3c24xx-fiq.S spi: reorganize drivers 2011-06-06 01:16:30 -06:00
spi-s3c24xx.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-s3c64xx.c spi/s3c64xx: modified error interrupt handling and init 2013-04-01 14:02:18 +01:00
spi-sc18is602.c spi/sc18is602: Return -EINVAL for probe failures due to I2C function mismatch 2012-08-23 12:13:54 +01:00
spi-sh-hspi.c spi/sh-hspi: fix return value check in hspi_probe(). 2012-12-19 15:11:41 +00:00
spi-sh-msiof.c spi/sh-msiof: Add device tree parsing to driver 2013-02-05 12:26:58 +00: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: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-sirf.c Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
spi-tegra20-sflash.c arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
spi-tegra20-slink.c spi: slink-tegra20: move runtime pm calls to transfer_one_message 2013-03-12 19:07:52 +00:00
spi-ti-ssp.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-tle62x0.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-topcliff-pch.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-txx9.c spi: Remove erroneous __init, __exit and __exit_p() references in drivers 2013-02-05 14:43:16 +00:00
spi-xcomm.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi-xilinx.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00
spi.c spi: Unlock a spinlock before calling into the controller driver. 2013-04-01 14:22:59 +01:00
spidev.c spi: Remove HOTPLUG section attributes 2012-12-07 17:06:43 +00:00