• Mauro Carvalho Chehab's avatar
    V4L/DVB (5147): Make vivi driver to use vmalloced pointers · b50e7fe9
    Mauro Carvalho Chehab authored
    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: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    b50e7fe9
vivi.c 34.6 KB