1. 16 2月, 2015 1 次提交
  2. 22 12月, 2014 3 次提交
  3. 06 11月, 2014 1 次提交
  4. 20 10月, 2014 1 次提交
  5. 15 10月, 2014 1 次提交
    • S
      dmaengine: edma: check for echan->edesc => NULL in edma_dma_pause() · 639559ad
      Sebastian Andrzej Siewior 提交于
      I added book keeping of whether or not the 8250-dma driver has an RX
      transfer pending or not so we don't BUG here if it calls
      dmaengine_pause() on a channel which has not a pending transfer. Guess
      what, this is not enough.
      The following can be triggered with a busy RX channel and hackbench in
      background:
      - DMA transfer completes. The callback is delayed via
        vchan_cookie_complete() into a tasklet so it das not happen asap.
      - hackbench keeps the system busy so the tasklet does not run "soon".
      - the UART collected enough data and generates an "timeout"-interrupt.
        Since 8250-dma *thinks* the DMA-transfer is still pending it tries to
        cancel it via invoking dmaengine_pause() first. This causes the segfault
        because echan->edesc is NULL now that the transfer completed (however
        the callback did not run yet).
      
      With this patch we don't BUG in the scenario described.
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      639559ad
  6. 04 8月, 2014 1 次提交
  7. 31 7月, 2014 2 次提交
  8. 28 7月, 2014 3 次提交
  9. 05 7月, 2014 1 次提交
  10. 30 4月, 2014 7 次提交
  11. 29 4月, 2014 1 次提交
  12. 23 4月, 2014 9 次提交
  13. 14 4月, 2014 1 次提交
    • S
      dma: edma: fix incorrect SG list handling · 5fc68a6c
      Sekhar Nori 提交于
      The code to handle any length SG lists calls edma_resume()
      even before edma_start() is called. This is incorrect
      because edma_resume() enables edma events on the channel
      after which CPU (in edma_start) cannot clear posted
      events by writing to ECR (per the EDMA user's guide).
      
      Because of this EDMA transfers fail to start if due
      to some reason there is a pending EDMA event registered
      even before EDMA transfers are started. This can happen if
      an EDMA event is a byproduct of device initialization.
      
      Fix this by calling edma_resume() only if it is not the
      first batch of MAX_NR_SG elements.
      
      Without this patch, MMC/SD fails to function on DA850 EVM
      with DMA. The behaviour is triggered by specific IP and
      this can explain why the issue was not reported before
      (example with MMC/SD on AM335x).
      
      Tested on DA850 EVM and AM335x EVM-SK using MMC/SD card.
      
      Cc: stable@vger.kernel.org # v3.12.x+
      Cc: Joel Fernandes <joelf@ti.com>
      Acked-by: NJoel Fernandes <joelf@ti.com>
      Tested-by: NJon Ringle <jringle@gridpoint.com>
      Tested-by: NAlexander Holler <holler@ahsoftware.de>
      Reported-by: NJon Ringle <jringle@gridpoint.com>
      Signed-off-by: NSekhar Nori <nsekhar@ti.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      5fc68a6c
  14. 06 3月, 2014 1 次提交
  15. 19 12月, 2013 1 次提交
  16. 13 11月, 2013 1 次提交
  17. 12 11月, 2013 1 次提交
    • J
      dma: edma: Add support for Cyclic DMA · 50a9c707
      Joel Fernandes 提交于
      Using the PaRAM configuration function that we split for reuse by the
      different DMA types, we implement Cyclic DMA support.
      For the cyclic case, we pass different configuration parameters to this
      function, and handle all the Cyclic-specific functionality separately.
      
      Callbacks to the DMA users are handled using vchan_cyclic_callback in
      the virt-dma layer. Linking is handled the same way as the slave SG case
      except for the last slot where we link it back to the first one in a
      cyclic fashion.
      
      For continuity, we check for cases where no.of periods is great than the
      MAX number of slots the driver can allocate for a particular descriptor
      and error out on such cases.
      Signed-off-by: NJoel Fernandes <joelf@ti.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      50a9c707
  18. 31 10月, 2013 1 次提交
  19. 30 10月, 2013 1 次提交
  20. 25 10月, 2013 2 次提交