Commit 3bd2e2216bc82a83fc5048f8e61d2d22dd5d9cda

Authored by Dmitry Kasatkin
Committed by Herbert Xu
1 parent c920fa6051

crypto: omap-aes - DMA initialization fixes for OMAP off mode

DMA parameters for constant data were initialized during driver probe().
It seems that those settings sometimes are lost when devices goes to off mode.
This patch makes DMA initialization just before use.
It solves off mode problems.

Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Showing 1 changed file with 12 additions and 12 deletions Side-by-side Diff

drivers/crypto/omap-aes.c
... ... @@ -339,18 +339,6 @@
339 339 goto err_dma_out;
340 340 }
341 341  
342   - omap_set_dma_dest_params(dd->dma_lch_in, 0, OMAP_DMA_AMODE_CONSTANT,
343   - dd->phys_base + AES_REG_DATA, 0, 4);
344   -
345   - omap_set_dma_dest_burst_mode(dd->dma_lch_in, OMAP_DMA_DATA_BURST_4);
346   - omap_set_dma_src_burst_mode(dd->dma_lch_in, OMAP_DMA_DATA_BURST_4);
347   -
348   - omap_set_dma_src_params(dd->dma_lch_out, 0, OMAP_DMA_AMODE_CONSTANT,
349   - dd->phys_base + AES_REG_DATA, 0, 4);
350   -
351   - omap_set_dma_src_burst_mode(dd->dma_lch_out, OMAP_DMA_DATA_BURST_4);
352   - omap_set_dma_dest_burst_mode(dd->dma_lch_out, OMAP_DMA_DATA_BURST_4);
353   -
354 342 return 0;
355 343  
356 344 err_dma_out:
... ... @@ -443,6 +431,12 @@
443 431 len32 = DIV_ROUND_UP(length, sizeof(u32));
444 432  
445 433 /* IN */
  434 + omap_set_dma_dest_params(dd->dma_lch_in, 0, OMAP_DMA_AMODE_CONSTANT,
  435 + dd->phys_base + AES_REG_DATA, 0, 4);
  436 +
  437 + omap_set_dma_dest_burst_mode(dd->dma_lch_in, OMAP_DMA_DATA_BURST_4);
  438 + omap_set_dma_src_burst_mode(dd->dma_lch_in, OMAP_DMA_DATA_BURST_4);
  439 +
446 440 omap_set_dma_transfer_params(dd->dma_lch_in, OMAP_DMA_DATA_TYPE_S32,
447 441 len32, 1, OMAP_DMA_SYNC_PACKET, dd->dma_in,
448 442 OMAP_DMA_DST_SYNC);
... ... @@ -451,6 +445,12 @@
451 445 dma_addr_in, 0, 0);
452 446  
453 447 /* OUT */
  448 + omap_set_dma_src_params(dd->dma_lch_out, 0, OMAP_DMA_AMODE_CONSTANT,
  449 + dd->phys_base + AES_REG_DATA, 0, 4);
  450 +
  451 + omap_set_dma_src_burst_mode(dd->dma_lch_out, OMAP_DMA_DATA_BURST_4);
  452 + omap_set_dma_dest_burst_mode(dd->dma_lch_out, OMAP_DMA_DATA_BURST_4);
  453 +
454 454 omap_set_dma_transfer_params(dd->dma_lch_out, OMAP_DMA_DATA_TYPE_S32,
455 455 len32, 1, OMAP_DMA_SYNC_PACKET,
456 456 dd->dma_out, OMAP_DMA_SRC_SYNC);