On Mon, May 11, 2009 at 10:36 PM, Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx> wrote: > Em Fri, 8 May 2009 13:06:58 -0700 > Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> escreveu: > >> On Fri, 08 May 2009 17:53:10 +0900 >> Magnus Damm <magnus.damm@xxxxxxxxx> wrote: >> >> > From: Magnus Damm <damm@xxxxxxxxxx> >> > >> > This is V3 of the V4L2 videobuf-dma-contig USERPTR zero copy patch. >> > >> > Since videobuf-dma-contig is designed to handle physically contiguous >> > memory, this patch modifies the videobuf-dma-contig code to only accept >> > a user space pointer to physically contiguous memory. For now only >> > VM_PFNMAP vmas are supported, so forget hotplug. >> > >> > On SuperH Mobile we use this with our sh_mobile_ceu_camera driver >> > together with various multimedia accelerator blocks that are exported to >> > user space using UIO. The UIO kernel code exports physically contiguous >> > memory to user space and lets the user space application mmap() this memory >> > and pass a pointer using the USERPTR interface for V4L2 zero copy operation. >> > >> > With this approach we support zero copy capture, hardware scaling and >> > various forms of hardware encoding and decoding. >> > >> > Signed-off-by: Magnus Damm <damm@xxxxxxxxxx> > > Acked-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> Thank you! >> What does it do, how does it do it and why does it do it? > > A good documentation is a really good idea here. There videobuf internals are > very complex. A good documentation for it is very important to keep it updated. I've just posted a little patch that adds function descriptions, hopefully that is one step in the right direction. > I would also suggest if you could also take a look at videobuf-vmalloc and implement a > similar method to provide USERPTR. The vmalloc flavor can easily be tested with > the virtual (vivi) video driver, so it helps people to better understand how > videobuf works. It will also help the USB drivers that use videobuf to use USERPTR. Yeah, supporting USERPTR with vivi sounds like a good plan. I'm not sure how much work it involves though. The comment in the videobuf-vmalloc header says that the buffer code assumes that the driver does not touch the data, but I think that's exactly how vivi generates the frame data for us. =) I need to figure out the best way to grab references to user space pages and map them virtually contiguous like vmalloc does. This will take a bit of time, so don't expect anything submitted in time for v2.6.31. I've put it fairly high on my TODO list. Thanks for your help! / magnus -- 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