Re: how to mmap in videobuf-dma-sg.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em 22-07-2010 23:31, figo zhang escreveu:
> 
>     Em Thu, 21 May 2009 12:46:04 +0800
>     "Figo.zhang" <figo1802@xxxxxxxxx <mailto:figo1802@xxxxxxxxx>> escreveu:
> 
>     > hi,all,
>     >  I am puzzle that how to mmap ( V4L2_MEMORY_MMAP) in videobuf-dma-sg.c?
>     >
>     > In this file, it alloc the momery using vmalloc_32() , and put this
>     > momery into sglist table,and then use dma_map_sg() to create sg dma at
>     > __videobuf_iolock() function. but in __videobuf_mmap_mapper(), i canot
>     > understand how it do the mmap?
>     > why it not use the remap_vmalloc_range() to do the mmap?
> 
>     The answer is simple: remap_vmalloc_range() is newer than videobuf code. This
>     part of the code was written back to kernel 2.4, and nobody cared to update it
>     to use those newer functions, and simplify its code.
> 
> 
> thanks, in __videobuf_mmap_mapper(), it define a videobuf_vm_ops->fault, it will alloc a new page for mmaping when it  encounter page fault (do_page_fault),
> so how the mmap() can mmap the vmalloc memory which had allocted before using __videobuf_iolock()/vmalloc_32() ?

Sorry for not answering earlier.

The current videobuf implementation has some problems. Laurent and Pawel are working
on a new implementation that will likely solve such issues. Not sure if they already
submitted the patches, since I just return back from vacations, and I'm still trying
to handle all the backlogs on my inboxes. I haven't look at LMML posts yet.

Cheers,
Mauro.

> 
> Thanks,
> Figo.zhang
>  
> 
> 
>     If you want, feel free to propose some cleanups on it
> 
> 
> 
>     Cheers,
>     Mauro
> 
> 

--
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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux