On Sat, Sep 13, 2008 at 03:05:40AM -0700, Andrew Morton wrote:
quoted
+static int overlay1fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
+{
+ struct overlayfb_info *fbi = (struct overlayfb_info *) info;
+ unsigned long off = vma->vm_pgoff << PAGE_SHIFT;
+ if (off < info->fix.smem_len) {
+ vma->vm_pgoff += fbi->video_offset / PAGE_SIZE;
+ return dma_mmap_writecombine(o1_to_basefb(fbi)->dev, vma,
+ fbi->map_cpu, fbi->map_dma,
+ fbi->map_size);
+ }
+ return -EINVAL;
+}
No need to set VM_IO or VM_RESERVED, etc?
That's covered by dma_mmap_writecombine -> remap_pfn_range:
vma->vm_flags |= VM_IO | VM_RESERVED | VM_PFNMAP;