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

Rouven Czerwinski r.czerwinski at pengutronix.de
Thu Mar 7 23:35:17 PST 2024


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 at pengutronix.de>
---
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




More information about the barebox mailing list