Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / video / igafb.c
index dd6b16c..6b88050 100644 (file)
@@ -219,7 +219,7 @@ static void iga_blank_border(struct iga_par *par)
 }
 
 #ifdef __sparc__
-static int igafb_mmap(struct fb_info *info, struct file *file,
+static int igafb_mmap(struct fb_info *info,
                      struct vm_area_struct *vma)
 {
        struct iga_par *par = (struct iga_par *)info->par;
@@ -262,8 +262,8 @@ static int igafb_mmap(struct fb_info *info, struct file *file,
                pgprot_val(vma->vm_page_prot) &= ~(par->mmap_map[i].prot_mask);
                pgprot_val(vma->vm_page_prot) |= par->mmap_map[i].prot_flag;
 
-               if (remap_page_range(vma, vma->vm_start + page, map_offset,
-                                    map_size, vma->vm_page_prot))
+               if (remap_pfn_range(vma, vma->vm_start + page,
+                       map_offset >> PAGE_SHIFT, map_size, vma->vm_page_prot))
                        return -EAGAIN;
 
                page += map_size;
@@ -531,12 +531,12 @@ int __init igafb_init(void)
        info->var = default_var;
        info->fix = igafb_fix;
        info->pseudo_palette = (void *)(par + 1);
+       info->device = &pdev->dev;
 
        if (!iga_init(info, par)) {
                iounmap((void *)par->io_base);
                iounmap(info->screen_base);
-               if (par->mmap_map)
-                       kfree(par->mmap_map);
+               kfree(par->mmap_map);
                kfree(info);
         }