Skip to content
  1. Jun 02, 2014
    • Jiada Wang's avatar
      dmaengine: imx: correct sdmac->status for cyclic dma tx · ffe59b29
      Jiada Wang authored
      
      
      In cyclic dma tx's handler sdma_handle_channel_loop(),
      SDMA channel statue is set to either DMA_ERROR or DMA_IN_PROGRESS
      based on each period's status. This has the following issues:
      
      1) If one period's status is BD_RROR, then channel status
         will be set to DMA_ERROR, but it will be overwritten to DMA_IN_PROGRESS
         if the following periods are OK.
      2) DMA client may call sdma_control(DMA_TERMINATE_ALL) to stop the cyclic dma
         operation, sdma channel status will be set to DMA_ERROR,
         but if after this handler is called, then again the channel status will be overwritten
         to DMA_IN_PROGRESS. Then the following dmaengine_prep_dma_cyclic() will always fail,
         as channel status is DMA_IN_PROGRESS.
      
      As in cyclic dma tx, channel status will be initially set to DMA_IN_PROGRESS,
      driver only needs to change it to DMA_ERROR, when something wrong happens
      (one period status is wrong, or stoped by client explicitly).
      
      Signed-off-by: default avatarJiada Wang <jiada_wang@mentor.com>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      ffe59b29
  2. May 22, 2014
  3. May 21, 2014
  4. May 07, 2014
  5. May 03, 2014
  6. May 02, 2014
  7. Apr 30, 2014
  8. Apr 29, 2014
  9. Apr 23, 2014