aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/omap-aes.c
diff options
context:
space:
mode:
authorJoel Fernandes <joelf@ti.com>2013-08-17 22:42:26 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2013-08-21 07:28:00 -0400
commit0a641712ef9459df5d8c19fc19e686887257b3e3 (patch)
tree558f74b706a211d3a7768108c675783f8b29f870 /drivers/crypto/omap-aes.c
parent4b645c9465065bb3f8fb717789e864aa6d675052 (diff)
crypto: omap-aes - Sync SG before DMA operation
Earlier functions that did a similar sync are replaced by the dma_sync_sg_* which can operate on entire SG list. Signed-off-by: Joel Fernandes <joelf@ti.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/omap-aes.c')
-rw-r--r--drivers/crypto/omap-aes.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 114c55a59efe..4ed2a8c40394 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -484,6 +484,8 @@ static int omap_aes_crypt_dma(struct crypto_tfm *tfm,
484 struct dma_slave_config cfg; 484 struct dma_slave_config cfg;
485 int ret; 485 int ret;
486 486
487 dma_sync_sg_for_device(dd->dev, dd->in_sg, in_sg_len, DMA_TO_DEVICE);
488
487 memset(&cfg, 0, sizeof(cfg)); 489 memset(&cfg, 0, sizeof(cfg));
488 490
489 cfg.src_addr = dd->phys_base + AES_REG_DATA_N(dd, 0); 491 cfg.src_addr = dd->phys_base + AES_REG_DATA_N(dd, 0);
@@ -670,6 +672,8 @@ static void omap_aes_done_task(unsigned long data)
670 672
671 pr_debug("enter done_task\n"); 673 pr_debug("enter done_task\n");
672 674
675 dma_sync_sg_for_cpu(dd->dev, dd->in_sg, dd->in_sg_len, DMA_FROM_DEVICE);
676
673 omap_aes_crypt_dma_stop(dd); 677 omap_aes_crypt_dma_stop(dd);
674 omap_aes_finish_req(dd, 0); 678 omap_aes_finish_req(dd, 0);
675 omap_aes_handle_queue(dd, NULL); 679 omap_aes_handle_queue(dd, NULL);