Commit 3bd2e2216bc82a83fc5048f8e61d2d22dd5d9cda
Committed by
Herbert Xu
1 parent
c920fa6051
Exists in
master
and in
4 other branches
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); |