Hi Marek, Thank you for the patch. On Wednesday 09 December 2015 14:58:19 Marek Szyprowski wrote: > Add a helper function for device drivers to set DMA's max_seg_size. > Setting it to largest possible value lets DMA-mapping API always create > contiguous mappings in DMA address space. This is essential for all > devices, which use dma-contig videobuf2 memory allocator and shared > buffers. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > drivers/media/v4l2-core/videobuf2-dma-contig.c | 15 +++++++++++++++ > include/media/videobuf2-dma-contig.h | 1 + > 2 files changed, 16 insertions(+) > > diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c > b/drivers/media/v4l2-core/videobuf2-dma-contig.c index c331272..628518d > 100644 > --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c > +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c > @@ -742,6 +742,21 @@ void vb2_dma_contig_cleanup_ctx(void *alloc_ctx) > } > EXPORT_SYMBOL_GPL(vb2_dma_contig_cleanup_ctx); > > +int vb2_dma_contig_set_max_seg_size(struct device *dev, unsigned int size) > +{ > + if (!dev->dma_parms) { When can this function be called with dev->dma_parms not NULL ? > + dev->dma_parms = devm_kzalloc(dev, sizeof(dev->dma_parms), > + GFP_KERNEL); > + if (!dev->dma_parms) > + return -ENOMEM; > + } > + if (dma_get_max_seg_size(dev) < size) > + return dma_set_max_seg_size(dev, size); > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(vb2_dma_contig_set_max_seg_size); > + > MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2"); > MODULE_AUTHOR("Pawel Osciak <pawel@xxxxxxxxxx>"); > MODULE_LICENSE("GPL"); > diff --git a/include/media/videobuf2-dma-contig.h > b/include/media/videobuf2-dma-contig.h index c33dfa6..0e6ba64 100644 > --- a/include/media/videobuf2-dma-contig.h > +++ b/include/media/videobuf2-dma-contig.h > @@ -26,6 +26,7 @@ vb2_dma_contig_plane_dma_addr(struct vb2_buffer *vb, > unsigned int plane_no) > > void *vb2_dma_contig_init_ctx(struct device *dev); > void vb2_dma_contig_cleanup_ctx(void *alloc_ctx); > +int vb2_dma_contig_set_max_seg_size(struct device *dev, unsigned int size); > > extern const struct vb2_mem_ops vb2_dma_contig_memops; -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html