crypto: img-hash - Reconfigure DMA Burst length
authorWill Thomas <will.thomas@imgtec.com>
Fri, 5 Aug 2016 13:00:16 +0000 (14:00 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 9 Aug 2016 10:47:20 +0000 (18:47 +0800)
Burst length of 16 drives the hash accelerator out of spec
and causes stability issues in some cases. Reduce this to
stop data being lost.

Signed-off-by: Will Thomas <will.thomas@imgtec.com>
Reviewed-by: James Hartley <james.hartley@imgtec.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/img-hash.c

index de2b86e..f8abbe3 100644 (file)
@@ -71,6 +71,7 @@
 #define DRIVER_FLAGS_MD5               BIT(21)
 
 #define IMG_HASH_QUEUE_LENGTH          20
+#define IMG_HASH_DMA_BURST             4
 #define IMG_HASH_DMA_THRESHOLD         64
 
 #ifdef __LITTLE_ENDIAN
@@ -342,7 +343,7 @@ static int img_hash_dma_init(struct img_hash_dev *hdev)
        dma_conf.direction = DMA_MEM_TO_DEV;
        dma_conf.dst_addr = hdev->bus_addr;
        dma_conf.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-       dma_conf.dst_maxburst = 16;
+       dma_conf.dst_maxburst = IMG_HASH_DMA_BURST;
        dma_conf.device_fc = false;
 
        err = dmaengine_slave_config(hdev->dma_lch,  &dma_conf);