diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-01-27 01:35:04 -0500 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2013-02-05 09:44:13 -0500 |
commit | 2cd94c8a1b4184b48ecbc16b353dcbb513053285 (patch) | |
tree | f93898fba0a5022602b8efec6a48619bfbda2fd6 /drivers/spi | |
parent | c88dd349b5a83c9efa4030176a5184a9a1440475 (diff) |
spi: Ensure memory used for spi_write_then_read() is DMA safe
Use GFP_DMA in order to ensure that the memory we allocate for transfers
in spi_write_then_read() can be DMAed. On most platforms this will have
no effect.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 2edbe1903804..d1e0a316826d 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c | |||
@@ -1661,7 +1661,8 @@ int spi_write_then_read(struct spi_device *spi, | |||
1661 | * using the pre-allocated buffer or the transfer is too large. | 1661 | * using the pre-allocated buffer or the transfer is too large. |
1662 | */ | 1662 | */ |
1663 | if ((n_tx + n_rx) > SPI_BUFSIZ || !mutex_trylock(&lock)) { | 1663 | if ((n_tx + n_rx) > SPI_BUFSIZ || !mutex_trylock(&lock)) { |
1664 | local_buf = kmalloc(max((unsigned)SPI_BUFSIZ, n_tx + n_rx), GFP_KERNEL); | 1664 | local_buf = kmalloc(max((unsigned)SPI_BUFSIZ, n_tx + n_rx), |
1665 | GFP_KERNEL | GFP_DMA); | ||
1665 | if (!local_buf) | 1666 | if (!local_buf) |
1666 | return -ENOMEM; | 1667 | return -ENOMEM; |
1667 | } else { | 1668 | } else { |