Hello, On Monday, September 26, 2011 1:14 PM Mauro Carvalho Chehab wrote: > > Scott Jiang (1): > > vb2: add vb2_get_unmapped_area in vb2 core > > > diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h > > index ea55c08..977410b 100644 > > --- a/include/media/videobuf2-core.h > > +++ b/include/media/videobuf2-core.h > > @@ -309,6 +309,13 @@ int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type); > > int vb2_streamoff(struct vb2_queue *q, enum v4l2_buf_type type); > > > > int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma); > > +#ifndef CONFIG_MMU > > +unsigned long vb2_get_unmapped_area(struct vb2_queue *q, > > + unsigned long addr, > > + unsigned long len, > > + unsigned long pgoff, > > + unsigned long flags); > > +#endif > > unsigned int vb2_poll(struct vb2_queue *q, struct file *file, poll_table *wait); > > size_t vb2_read(struct vb2_queue *q, char __user *data, size_t count, > > loff_t *ppos, int nonblock); > > This sounds me like a hack, as it is passing the problem of working with a non-mmu > capable hardware to the driver, inserting architecture-dependent bits on them. > > The proper way to do it is to provide a vb2 core support to handle the non-mmu case > inside it. This is exactly what this patch does - it provides generic vb2 implementation for fops->get_unmapped_area callback which any vb2 ready driver can use. This operation is used only on NON-MMU systems. Please check drivers/media/video/v4l2-dev.c file and the implementation of get_unmapped_area there. Similar code is used by uvc driver. Best regards -- Marek Szyprowski Samsung Poland R&D Center -- 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