• Linus Torvalds's avatar
    Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 58bca4a8
    Linus Torvalds authored
    Pull DMA mapping branch from Marek Szyprowski:
     "Short summary for the whole series:
    
      A few limitations have been identified in the current dma-mapping
      design and its implementations for various architectures.  There exist
      more than one function for allocating and freeing the buffers:
      currently these 3 are used dma_{alloc, free}_coherent,
      dma_{alloc,free}_writecombine, dma_{alloc,free}_noncoherent.
    
      For most of the systems these calls are almost equivalent and can be
      interchanged.  For others, especially the truly non-coherent ones
      (like ARM), the difference can be easily noticed in overall driver
      performance.  Sadly not all architectures provide implementations for
      all of them, so the drivers might need to be adapted and cannot be
      easily shared between different architectures.  The provided patches
      unify all these functions and hide the differences under the already
      existing dma attributes concept.  The thread with more references is
      available here:
    
        http://www.spinics.net/lists/linux-sh/msg09777.html
    
      These patches are also a prerequisite for unifying DMA-mapping
      implementation on ARM architecture with the common one provided by
      dma_map_ops structure and extending it with IOMMU support.  More
      information is available in the following thread:
    
        http://thread.gmane.org/gmane.linux.kernel.cross-arch/12819
    
      More works on dma-mapping framework are planned, especially in the
      area of buffer sharing and managing the shared mappings (together with
      the recently introduced dma_buf interface: commit d15bd7ee
      "dma-buf: Introduce dma buffer sharing mechanism").
    
      The patches in the current set introduce a new alloc/free methods
      (with support for memory attributes) in dma_map_ops structure, which
      will later replace dma_alloc_coherent and dma_alloc_writecombine
      functions."
    
    People finally started piping up with support for merging this, so I'm
    merging it as the last of the pending stuff from the merge window.
    Looks like pohmelfs is going to wait for 3.5 and more external support
    for merging.
    
    * 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
      common: DMA-mapping: add NON-CONSISTENT attribute
      common: DMA-mapping: add WRITE_COMBINE attribute
      common: dma-mapping: introduce mmap method
      common: dma-mapping: remove old alloc_coherent and free_coherent methods
      Hexagon: adapt for dma_map_ops changes
      Unicore32: adapt for dma_map_ops changes
      Microblaze: adapt for dma_map_ops changes
      SH: adapt for dma_map_ops changes
      Alpha: adapt for dma_map_ops changes
      SPARC: adapt for dma_map_ops changes
      PowerPC: adapt for dma_map_ops changes
      MIPS: adapt for dma_map_ops changes
      X86 & IA64: adapt for dma_map_ops changes
      common: dma-mapping: introduce generic alloc() and free() methods
    58bca4a8
pci-dma.c 6.63 KB