1. 25 Jun, 2015 7 commits
  2. 17 Jun, 2015 2 commits
  3. 12 Jun, 2015 3 commits
  4. 10 Jun, 2015 5 commits
  5. 08 Jun, 2015 2 commits
  6. 02 Jun, 2015 2 commits
  7. 29 May, 2015 1 commit
    • Robert Jarzmik's avatar
      dmaengine: pxa_dma: add support for legacy transition · c91134d9
      Robert Jarzmik authored
      In order to achieve smooth transition of pxa drivers from old legacy dma
      handling to new dmaengine, introduce a function to "hide" dma physical
      channels from dmaengine.
      
      This is temporary situation where pxa dma will be handled in 2 places :
       - arch/arm/plat-pxa/dma.c
       - drivers/dma/pxa_dma.c
      
      The resources, ie. dma channels, will be controlled by pxa_dma. The
      legacy code will request or release a channel with
      pxad_toggle_reserved_channel().
      
      This is not very pretty, but it ensures both legacy and dmaengine
      consumers can live in the same kernel until the conversion is done.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      c91134d9
  8. 26 May, 2015 4 commits
    • Robert Jarzmik's avatar
      dmaengine: pxa_dma: add debug information · c01d1b51
      Robert Jarzmik authored
      Reuse the debugging features which were available in pxa architecture.
      This is a copy of the code from arch/arm/plat-pxa/dma, which is doomed
      to disappear once the conversion is completed towards dmaengine.
      
      This is a transfer of the commit "[ARM] pxa/dma: add debugfs
      entries" (d294948c).
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      c01d1b51
    • Robert Jarzmik's avatar
      dmaengine: pxa: add pxa dmaengine driver · a57e16cf
      Robert Jarzmik authored
      This is a new driver for pxa SoCs, which is also compatible with the former
      mmp_pdma.
      
      The rationale behind a new driver (as opposed to incremental patching) was :
      
       - the new driver relies on virt-dma, which obsoletes all the internal
         structures of mmp_pdma (sw_desc, hw_desc, ...), and by consequence all the
         functions
      
       - mmp_pdma allocates dma coherent descriptors containing not only hardware
         descriptors but linked list information
         The new driver only puts the dma hardware descriptors (ie. 4 u32) into the
         dma pool allocated memory. This changes completely the way descriptors are
         handled
      
       - the architecture behind the interrupt/tasklet management was rewritten to be
         more conforming to virt-dma
      
       - the buffers alignment is handled differently
         The former driver assumed that the DMA channel stopped between each
         descriptor. The new one chains descriptors to let the channel running. This
         is a necessary guarantee for real-time high bandwidth usecases such as video
         capture on "old" architectures such as pxa.
      
       - hot chaining / cold chaining / no chaining
         Whenever possible, submitting a descriptor "hot chains" it to a running
         channel. There is still no guarantee that the descriptor will be issued, as
         the channel might be stopped just before the descriptor is submitted. Yet
         this allows to submit several video buffers, and resubmit a buffer while
         another is under handling.
         As before, dma_async_issue_pending() is the only guarantee to have all the
         buffers issued.
         When an alignment issue is detected (ie. one address in a descriptor is not
         a multiple of 8), if the already running channel is in "aligned mode", the
         channel will stop, and restarted in "misaligned mode" to finished the issued
         list.
      
       - descriptors reusing
         A submitted, issued and completed descriptor can be reused, ie resubmitted if
         it was prepared with the proper flag (DMA_PREP_ACK).  Only a channel
         resources release will in this case release that buffer.
         This allows a rolling ring of buffers to be reused, where there are several
         thousands of hardware descriptors used (video buffer for example).
      
      Additionally, a set of more casual features is introduced :
       - debugging traces
       - lockless way to know if a descriptor is terminated or not
      
      The driver was tested on zylonite board (pxa3xx) and mioa701 (pxa27x),
      with dmatest, pxa_camera and pxamci.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      a57e16cf
    • Robert Jarzmik's avatar
      MAINTAINERS: add pxa dma driver to pxa architecture · 820439f1
      Robert Jarzmik authored
      Add the pxa dma driver as maintained by the pxa architecture
      maintainers, as it is part of the core IP.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      820439f1
    • Robert Jarzmik's avatar
      Documentation: dmaengine: pxa-dma design · 16eea6b4
      Robert Jarzmik authored
      Document the new design of the pxa dma driver.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      16eea6b4
  9. 25 May, 2015 3 commits
  10. 18 May, 2015 5 commits
  11. 14 May, 2015 1 commit
  12. 09 May, 2015 5 commits