mmap问题
最近在做摄像的驱动,遇到一个问题.我用read方式读可以读到图像的数据,但是经过mmap以后,读出来的都是0, 不知道为什么.
int os_camif_mmap(struct file *filp, struct vm_area_struct *vma)
{
vma->vm_flags |= VM_IO;
vma->vm_flags |= VM_RESERVED;
//vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
vma->vm_pgoff = ( (u32)(cam_phy_addr) >> PAGE_SHIFT); //cam_phy_addr DMA 地址
if (io_remap_page_range( vma->vm_start, vma->vm_pgoff,
vma->vm_end - vma->vm_start, vma->vm_page_prot))
{
printk("camif mmap faile!\n");
return -EAGAIN;
}
printk("camif mmap ok!\n");
return 0;
}