Dear Markus: In em28xx-video.c, when you design memory map function, You used this state: ++++++++ for(i=0; i<dev->num_frames; i++){ if(dev->frame[i].buf.m.offset >> PAGE_SHIFT == vma->pgoff) break; } ++++++++ Why dev->frame[i].buf.m.off>>PAGE_SHIFT == vma->pgoff; I see the mmap function implemented in Linux device driver3, it is like this: if(remap_pfn_range(vma, vma_start, vm->vm_pgoff, vma_size, vma->vm_page_prot)) return -EAGAIN; ...... ...... And where did the frame[i].buf come from? Could you please give me some explanation? _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb