V4L/DVB (5147): Make vivi driver to use vmalloced pointers
authorMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 25 Jan 2007 08:00:01 +0000 (05:00 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 21 Feb 2007 15:34:55 +0000 (13:34 -0200)
commitb50e7fe99317c05b0bb8ba6338bc6aa7da3b918e
tree32124766d993a7d65b49555f6f65a04508ecc318
parent52ebc763d8e0c9f2ab48af89a75e90e2318bac86
V4L/DVB (5147): Make vivi driver to use vmalloced pointers

Before this patch, vivi were simulating a scatter gather DMA transfer.
While this is academic, showing how stuff really works on a real PCI
device, this means a non-optimized code.
There are only two memory models that vivi implements:
1) kernel alloced memory. This is also used by read() method.
   On this case, a vmalloc32 buffer is allocated at kernel;
2) userspace allocated memory. This is used by most userspace apps.
   video-buf will store this pointer.
   a simple copy_to_user is enough to transfer data.
The third memory model scenario supported by video-buf is overlay mode.
This model is not implemented on vivi and unlikely to be implemented on
newer drivers, since now, most userspace apps do some post-processing
(like de-interlacing).
After this patch, some cleanups may be done at video-buf.c to avoid
allocating pages, when the driver doesn't need a PCI buffer. This is the
case of vivi and usb drivers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/video-buf.c
drivers/media/video/vivi.c
include/media/video-buf.h