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