Hi John, On Fri, Sep 06, 2019 at 06:47:09PM +0000, John Stultz wrote: > Add generic helper dmabuf ops for dma heaps, so we can reduce > the amount of duplicative code for the exported dmabufs. > > This code is an evolution of the Android ION implementation, so > thanks to its original authors and maintainters: > Rebecca Schultz Zavin, Colin Cross, Laura Abbott, and others! > > Cc: Laura Abbott <labbott@xxxxxxxxxx> > Cc: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx> > Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx> > Cc: Liam Mark <lmark@xxxxxxxxxxxxxx> > Cc: Pratik Patel <pratikp@xxxxxxxxxxxxxx> > Cc: Brian Starkey <Brian.Starkey@xxxxxxx> > Cc: Vincent Donnefort <Vincent.Donnefort@xxxxxxx> > Cc: Sudipto Paul <Sudipto.Paul@xxxxxxx> > Cc: Andrew F. Davis <afd@xxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: Chenbo Feng <fengc@xxxxxxxxxx> > Cc: Alistair Strachan <astrachan@xxxxxxxxxx> > Cc: Hridya Valsaraju <hridya@xxxxxxxxxx> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Reviewed-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx> > Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx> Two minor things below. > --- > v2: > * Removed cache management performance hack that I had > accidentally folded in. > * Removed stats code that was in helpers > * Lots of checkpatch cleanups > v3: > * Uninline INIT_HEAP_HELPER_BUFFER (suggested by Christoph) > * Switch to WARN on buffer destroy failure (suggested by Brian) > * buffer->kmap_cnt decrementing cleanup (suggested by Christoph) > * Extra buffer->vaddr checking in dma_heap_dma_buf_kmap > (suggested by Brian) > * Switch to_helper_buffer from macro to inline function > (suggested by Benjamin) > * Rename kmap->vmap (folded in from Andrew) > * Use vmap for vmapping - not begin_cpu_access (folded in from > Andrew) > * Drop kmap for now, as its optional (folded in from Andrew) > * Fold dma_heap_map_user into the single caller (foled in from > Andrew) > * Folded in patch from Andrew to track page list per heap not > sglist, which simplifies the tracking logic > v4: > * Moved dma-heap.h change out to previous patch > v6: > * Minor cleanups and typo fixes suggested by Brian > v7: > * Removed stray ; > * Make init_heap_helper_buffer lowercase, as suggested by Christoph > * Add dmabuf export helper to reduce boilerplate code > v8: > * Remove unused private_flags value > * Condense dma_heap_buffer and heap_helper_buffer (suggested by > Christoph) > * Fix indentation by using shorter argument names (suggested by > Christoph) > * Add flush_kernel_vmap_range/invalidate_kernel_vmap_range calls > (suggested by Christoph) > * Checkpatch whitespace fixups > --- ... > + > +static void *dma_heap_buffer_vmap_get(struct heap_helper_buffer *buffer) > +{ > + void *vaddr; > + > + if (buffer->vmap_cnt) { > + buffer->vmap_cnt++; > + return buffer->vaddr; > + } > + vaddr = dma_heap_map_kernel(buffer); > + if (WARN_ONCE(!vaddr, > + "heap->ops->map_kernel should return ERR_PTR on error")) Looks like the message is out-of-date here. ... > + > +/** > + * struct heap_helper_buffer - helper buffer metadata > + * @heap: back pointer to the heap the buffer came from > + * @dmabuf: backing dma-buf for this buffer > + * @size: size of the buffer > + * @flags: buffer specific flags > + * @priv_virt pointer to heap specific private value > + * @lock mutext to protect the data in this structure > + * @vmap_cnt count of vmap references on the buffer > + * @vaddr vmap'ed virtual address > + * @pagecount number of pages in the buffer > + * @pages list of page pointers > + * @attachment list of device attachments s/attachment/attachments/ With those fixed, feel free to add: Reviewed-by: Brian Starkey <brian.starkey@xxxxxxx> Thanks, -Brian _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel