aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-atmel.c
diff options
context:
space:
mode:
authorNicolas Ferre <nicolas.ferre@atmel.com>2013-03-19 03:44:22 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2013-04-01 09:42:43 -0400
commit1888e8f2f55c40656d8eff68572abb3748068b96 (patch)
tree7a5abf494746957716f2d5cf310b8028a3b40592 /drivers/spi/spi-atmel.c
parent97ed465b4d3b6ec6ab12d1ee0cea48a66891c985 (diff)
spi/spi-atmel: call unmapping on transfers buffers
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/spi/spi-atmel.c')
-rw-r--r--drivers/spi/spi-atmel.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index 26c126bfe02a..3c5ec603bcb0 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -1047,6 +1047,7 @@ static int atmel_spi_remove(struct platform_device *pdev)
1047 struct spi_master *master = platform_get_drvdata(pdev); 1047 struct spi_master *master = platform_get_drvdata(pdev);
1048 struct atmel_spi *as = spi_master_get_devdata(master); 1048 struct atmel_spi *as = spi_master_get_devdata(master);
1049 struct spi_message *msg; 1049 struct spi_message *msg;
1050 struct spi_transfer *xfer;
1050 1051
1051 /* reset the hardware and block queue progress */ 1052 /* reset the hardware and block queue progress */
1052 spin_lock_irq(&as->lock); 1053 spin_lock_irq(&as->lock);
@@ -1058,9 +1059,10 @@ static int atmel_spi_remove(struct platform_device *pdev)
1058 1059
1059 /* Terminate remaining queued transfers */ 1060 /* Terminate remaining queued transfers */
1060 list_for_each_entry(msg, &as->queue, queue) { 1061 list_for_each_entry(msg, &as->queue, queue) {
1061 /* REVISIT unmapping the dma is a NOP on ARM and AVR32 1062 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
1062 * but we shouldn't depend on that... 1063 if (!msg->is_dma_mapped)
1063 */ 1064 atmel_spi_dma_unmap_xfer(master, xfer);
1065 }
1064 msg->status = -ESHUTDOWN; 1066 msg->status = -ESHUTDOWN;
1065 msg->complete(msg->context); 1067 msg->complete(msg->context);
1066 } 1068 }