@@ -1025,7 +1025,7 @@ static int __prepare_userptr(struct vb2_buffer *vb, const void *pb)
mem_priv = call_ptr_memop(vb, get_userptr,
q->alloc_devs[plane] ? : q->dev,
planes[plane].m.userptr,
- planes[plane].length, dma_dir);
+ planes[plane].length, dma_dir, q->dma_attrs);
if (IS_ERR(mem_priv)) {
dprintk(1, "failed acquiring userspace memory for plane %d\n",
plane);
@@ -475,7 +475,8 @@ static inline dma_addr_t vb2_dc_pfn_to_dma(struct device *dev, unsigned long pfn
#endif
static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr,
- unsigned long size, enum dma_data_direction dma_dir)
+ unsigned long size, enum dma_data_direction dma_dir,
+ unsigned long attrs)
{
struct vb2_dc_buf *buf;
struct frame_vector *vec;
@@ -220,7 +220,8 @@ static void vb2_dma_sg_finish(void *buf_priv)
static void *vb2_dma_sg_get_userptr(struct device *dev, unsigned long vaddr,
unsigned long size,
- enum dma_data_direction dma_dir)
+ enum dma_data_direction dma_dir,
+ unsigned long dma_attrs)
{
struct vb2_dma_sg_buf *buf;
struct sg_table *sgt;
@@ -73,7 +73,8 @@ static void vb2_vmalloc_put(void *buf_priv)
static void *vb2_vmalloc_get_userptr(struct device *dev, unsigned long vaddr,
unsigned long size,
- enum dma_data_direction dma_dir)
+ enum dma_data_direction dma_dir,
+ unsigned long dma_attrs)
{
struct vb2_vmalloc_buf *buf;
struct frame_vector *vec;
@@ -122,7 +122,8 @@ struct vb2_mem_ops {
void *(*get_userptr)(struct device *dev, unsigned long vaddr,
unsigned long size,
- enum dma_data_direction dma_dir);
+ enum dma_data_direction dma_dir,
+ unsigned long dma_attrs);
void (*put_userptr)(void *buf_priv);
void (*prepare)(void *buf_priv);
The DMA attributes were available for the memop implementation for MMAP buffers but not for USERPTR buffers. Do the same for USERPTR. This patch makes no functional changes. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- drivers/media/v4l2-core/videobuf2-core.c | 2 +- drivers/media/v4l2-core/videobuf2-dma-contig.c | 3 ++- drivers/media/v4l2-core/videobuf2-dma-sg.c | 3 ++- drivers/media/v4l2-core/videobuf2-vmalloc.c | 3 ++- include/media/videobuf2-core.h | 3 ++- 5 files changed, 9 insertions(+), 5 deletions(-)