[PATCH v2 1/2] crypto: caam: map DMA buffers instead of single_sync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



With dma api debugging enabled, Barebox complains correctly that the
result and desc buffer are never mapped correctly. Add the correct map
and unmap sequence instead of the sync single.

Signed-off-by: Rouven Czerwinski <r.czerwinski@xxxxxxxxxxxxxx>
---
v2:
- remove dma_sync_single_for_device() calls

 drivers/crypto/caam/rng_self_test.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/caam/rng_self_test.c b/drivers/crypto/caam/rng_self_test.c
index b6fcc3bc09..7bb340acbd 100644
--- a/drivers/crypto/caam/rng_self_test.c
+++ b/drivers/crypto/caam/rng_self_test.c
@@ -186,10 +186,8 @@ int caam_rng_self_test(struct device *dev, const u8 caam_era, const u8 rngvid,
 
 	construct_rng_self_test_jobdesc(desc, rng_st_dsc, result, desc_size);
 
-	dma_sync_single_for_device(dev, (unsigned long)desc,
-			desc_size * sizeof(*desc), DMA_TO_DEVICE);
-	dma_sync_single_for_device(dev, (unsigned long)result,
-			result_size * sizeof(*result), DMA_FROM_DEVICE);
+	dma_map_single(dev, desc, desc_size * sizeof(*desc), DMA_TO_DEVICE);
+	dma_map_single(dev, result, result_size * sizeof(*result), DMA_FROM_DEVICE);
 
 	/* wait for job completion */
 	ret = caam_jr_enqueue(dev, desc, rng_self_test_done, &job_err);
@@ -218,6 +216,8 @@ int caam_rng_self_test(struct device *dev, const u8 caam_era, const u8 rngvid,
 	ret = 0;
 
 err:
+	dma_unmap_single(dev, (dma_addr_t)desc, desc_size * sizeof(*desc), DMA_TO_DEVICE);
+	dma_unmap_single(dev, (dma_addr_t)result, result_size * sizeof(*result), DMA_FROM_DEVICE);
 	dma_free(desc);
 	dma_free(result);
 	return ret;
-- 
2.39.2





[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux