Commit b3b5fce7 authored by Horia Geantă's avatar Horia Geantă Committed by Herbert Xu

crypto: caam - check return code of dma_set_mask_and_coherent()

Setting the dma mask could fail, thus make sure it succeeds
before going further.
Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 78fd0fff
...@@ -586,13 +586,18 @@ static int caam_probe(struct platform_device *pdev) ...@@ -586,13 +586,18 @@ static int caam_probe(struct platform_device *pdev)
JRSTART_JR1_START | JRSTART_JR2_START | JRSTART_JR1_START | JRSTART_JR2_START |
JRSTART_JR3_START); JRSTART_JR3_START);
if (sizeof(dma_addr_t) == sizeof(u64)) if (sizeof(dma_addr_t) == sizeof(u64)) {
if (of_device_is_compatible(nprop, "fsl,sec-v5.0")) if (of_device_is_compatible(nprop, "fsl,sec-v5.0"))
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(40)); ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(40));
else else
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(36)); ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(36));
else } else {
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
}
if (ret) {
dev_err(dev, "dma_set_mask_and_coherent failed (%d)\n", ret);
goto iounmap_ctrl;
}
/* /*
* Detect and enable JobRs * Detect and enable JobRs
......
...@@ -498,13 +498,22 @@ static int caam_jr_probe(struct platform_device *pdev) ...@@ -498,13 +498,22 @@ static int caam_jr_probe(struct platform_device *pdev)
jrpriv->rregs = (struct caam_job_ring __iomem __force *)ctrl; jrpriv->rregs = (struct caam_job_ring __iomem __force *)ctrl;
if (sizeof(dma_addr_t) == sizeof(u64)) if (sizeof(dma_addr_t) == sizeof(u64)) {
if (of_device_is_compatible(nprop, "fsl,sec-v5.0-job-ring")) if (of_device_is_compatible(nprop, "fsl,sec-v5.0-job-ring"))
dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(40)); error = dma_set_mask_and_coherent(jrdev,
DMA_BIT_MASK(40));
else else
dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(36)); error = dma_set_mask_and_coherent(jrdev,
else DMA_BIT_MASK(36));
dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(32)); } else {
error = dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(32));
}
if (error) {
dev_err(jrdev, "dma_set_mask_and_coherent failed (%d)\n",
error);
iounmap(ctrl);
return error;
}
/* Identify the interrupt */ /* Identify the interrupt */
jrpriv->irq = irq_of_parse_and_map(nprop, 0); jrpriv->irq = irq_of_parse_and_map(nprop, 0);
......
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