Commit 1a7c6856 authored by Marek Vasut's avatar Marek Vasut Committed by Herbert Xu

crypto: mxs-dcp - Align the bounce buffers

The DCP needs the bounce buffers, DMA descriptors and result buffers aligned
to 64 bytes (yet another hardware limitation). Make sure they are aligned by
properly aligning the structure which contains them during allocation.
Signed-off-by: default avatarMarek Vasut <marex@denx.de>
Cc: David S. Miller <davem@davemloft.net>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 26f25b26
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
#define DCP_MAX_CHANS 4 #define DCP_MAX_CHANS 4
#define DCP_BUF_SZ PAGE_SIZE #define DCP_BUF_SZ PAGE_SIZE
#define DCP_ALIGNMENT 64
/* DCP DMA descriptor. */ /* DCP DMA descriptor. */
struct dcp_dma_desc { struct dcp_dma_desc {
uint32_t next_cmd_addr; uint32_t next_cmd_addr;
...@@ -947,12 +949,16 @@ static int mxs_dcp_probe(struct platform_device *pdev) ...@@ -947,12 +949,16 @@ static int mxs_dcp_probe(struct platform_device *pdev)
} }
/* Allocate coherent helper block. */ /* Allocate coherent helper block. */
sdcp->coh = devm_kzalloc(dev, sizeof(*sdcp->coh), GFP_KERNEL); sdcp->coh = devm_kzalloc(dev, sizeof(*sdcp->coh) + DCP_ALIGNMENT,
GFP_KERNEL);
if (!sdcp->coh) { if (!sdcp->coh) {
ret = -ENOMEM; ret = -ENOMEM;
goto err_mutex; goto err_mutex;
} }
/* Re-align the structure so it fits the DCP constraints. */
sdcp->coh = PTR_ALIGN(sdcp->coh, DCP_ALIGNMENT);
/* Restart the DCP block. */ /* Restart the DCP block. */
ret = stmp_reset_block(sdcp->base); ret = stmp_reset_block(sdcp->base);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment