crypto: omap-aes - Sync SG before DMA operation
authorJoel Fernandes <joelf@ti.com>
Sun, 18 Aug 2013 02:42:26 +0000 (21:42 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 21 Aug 2013 11:28:00 +0000 (21:28 +1000)
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>
drivers/crypto/omap-aes.c

index 114c55a..4ed2a8c 100644 (file)
@@ -484,6 +484,8 @@ static int omap_aes_crypt_dma(struct crypto_tfm *tfm,
        struct dma_slave_config cfg;
        int ret;
 
+       dma_sync_sg_for_device(dd->dev, dd->in_sg, in_sg_len, DMA_TO_DEVICE);
+
        memset(&cfg, 0, sizeof(cfg));
 
        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)
 
        pr_debug("enter done_task\n");
 
+       dma_sync_sg_for_cpu(dd->dev, dd->in_sg, dd->in_sg_len, DMA_FROM_DEVICE);
+
        omap_aes_crypt_dma_stop(dd);
        omap_aes_finish_req(dd, 0);
        omap_aes_handle_queue(dd, NULL);