diff options
author | Joel Fernandes <joelf@ti.com> | 2013-08-17 22:42:26 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2013-08-21 07:28:00 -0400 |
commit | 0a641712ef9459df5d8c19fc19e686887257b3e3 (patch) | |
tree | 558f74b706a211d3a7768108c675783f8b29f870 /drivers/crypto/omap-aes.c | |
parent | 4b645c9465065bb3f8fb717789e864aa6d675052 (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.c | 4 |
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); |