1. 14 Jul, 2017 1 commit
  2. 19 Jan, 2017 1 commit
  3. 11 Oct, 2016 1 commit
  4. 04 Aug, 2016 1 commit
    • Krzysztof Kozlowski's avatar
      dma-mapping: use unsigned long for dma_attrs · 00085f1e
      Krzysztof Kozlowski authored
      The dma-mapping core and the implementations do not change the DMA
      attributes passed by pointer.  Thus the pointer can point to const data.
      However the attributes do not have to be a bitfield.  Instead unsigned
      long will do fine:
      
      1. This is just simpler.  Both in terms of reading the code and setting
         attributes.  Instead of initializing local attributes on the stack
         and passing pointer to it to dma_set_attr(), just set the bits.
      
      2. It brings safeness and checking for const correctness because the
         attributes are passed by value.
      
      Semantic patches for this change (at least most of them):
      
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
      
          @@
          f(...,
          - struct dma_attrs *attrs
          + unsigned long attrs
          , ...)
          {
          ...
          }
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      and
      
          // Options: --all-includes
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
          type t;
      
          @@
          t f(..., struct dma_attrs *attrs);
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.comSigned-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Acked-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Acked-by: Hans-Christian Noren Egtvedt's avatarHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
      Acked-by: Mark Salter <msalter@redhat.com> [c6x]
      Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> [cris]
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> [drm]
      Reviewed-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Fabien Dessenne <fabien.dessenne@st.com> [bdisp]
      Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> [vb2-core]
      Acked-by: David Vrabel <david.vrabel@citrix.com> [xen]
      Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen swiotlb]
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Richard Kuo <rkuo@codeaurora.org> [hexagon]
      Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k]
      Acked-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> [s390]
      Acked-by: Bjorn Andersson's avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> [avr32]
      Acked-by: Vineet Gupta <vgupta@synopsys.com> [arc]
      Acked-by: Robin Murphy <robin.murphy@arm.com> [arm64 and dma-iommu]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      00085f1e
  5. 11 Feb, 2016 1 commit
  6. 05 May, 2014 1 commit
  7. 14 Oct, 2013 1 commit
  8. 29 Nov, 2012 1 commit
  9. 30 Jul, 2012 2 commits
    • Marek Szyprowski's avatar
      common: DMA-mapping: add DMA_ATTR_SKIP_CPU_SYNC attribute · bdf5e487
      Marek Szyprowski authored
      This patch adds DMA_ATTR_SKIP_CPU_SYNC attribute to the DMA-mapping
      subsystem.
      
      By default dma_map_{single,page,sg} functions family transfer a given
      buffer from CPU domain to device domain. Some advanced use cases might
      require sharing a buffer between more than one device. This requires
      having a mapping created separately for each device and is usually
      performed by calling dma_map_{single,page,sg} function more than once
      for the given buffer with device pointer to each device taking part in
      the buffer sharing. The first call transfers a buffer from 'CPU' domain
      to 'device' domain, what synchronizes CPU caches for the given region
      (usually it means that the cache has been flushed or invalidated
      depending on the dma direction). However, next calls to
      dma_map_{single,page,sg}() for other devices will perform exactly the
      same sychronization operation on the CPU cache. CPU cache sychronization
      might be a time consuming operation, especially if the buffers are
      large, so it is highly recommended to avoid it if possible.
      DMA_ATTR_SKIP_CPU_SYNC allows platform code to skip synchronization of
      the CPU cache for the given buffer assuming that it has been already
      transferred to 'device' domain. This attribute can be also used for
      dma_unmap_{single,page,sg} functions family to force buffer to stay in
      device domain after releasing a mapping for it. Use this attribute with
      care!
      Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      bdf5e487
    • Marek Szyprowski's avatar
      common: DMA-mapping: add DMA_ATTR_NO_KERNEL_MAPPING attribute · d5724f17
      Marek Szyprowski authored
      This patch adds DMA_ATTR_NO_KERNEL_MAPPING attribute which lets the
      platform to avoid creating a kernel virtual mapping for the allocated
      buffer. On some architectures creating such mapping is non-trivial task
      and consumes very limited resources (like kernel virtual address space
      or dma consistent address space). Buffers allocated with this attribute
      can be only passed to user space by calling dma_mmap_attrs().
      Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      d5724f17
  10. 28 Mar, 2012 2 commits
  11. 22 Jul, 2008 1 commit
  12. 29 Apr, 2008 1 commit