• Christoph Hellwig's avatar
    dma-mapping: add a dma_alloc_noncontiguous API · 7d5b5738
    Christoph Hellwig authored
    Add a new API that returns a potentiall virtually non-contigous sg_table
    and a DMA address.  This API is only properly implemented for dma-iommu
    and will simply return a contigious chunk as a fallback.
    
    The intent is that drivers can use this API if either:
    
     - no kernel mapping or only temporary kernel mappings are required.
       That is as a better replacement for DMA_ATTR_NO_KERNEL_MAPPING
     - a kernel mapping is required for cached and DMA mapped pages, but
       the driver also needs the pages to e.g. map them to userspace.
       In that sense it is a replacement for some aspects of the recently
       removed and never fully implemented DMA_ATTR_NON_CONSISTENT
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarTomasz Figa <tfiga@chromium.org>
    Tested-by: default avatarRicardo Ribalda <ribalda@chromium.org>
    7d5b5738
dma-api.rst 30.2 KB