vserver 1.9.5.x5
[linux-2.6.git] / drivers / video / igafb.c
index 7e0353a..2da19ea 100644 (file)
@@ -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;
@@ -357,7 +357,7 @@ static int __init iga_init(struct fb_info *info, struct iga_par *par)
                 video_cmap_len = 256;
 
        info->fbops = &igafb_ops;
-       info->flags = FBINFO_FLAG_DEFAULT;
+       info->flags = FBINFO_DEFAULT;
 
        fb_alloc_cmap(&info->cmap, video_cmap_len, 0);
 
@@ -381,6 +381,9 @@ int __init igafb_init(void)
        unsigned long addr;
        int size, iga2000 = 0;
 
+       if (fb_get_options("igafb", NULL))
+               return -ENODEV;
+
         /* Do not attach when we have a serial console. */
         if (!con_is_present())
                 return -ENXIO;
@@ -528,6 +531,7 @@ 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);
@@ -572,4 +576,5 @@ int __init igafb_setup(char *options)
     return 0;
 }
 
+module_init(igafb_init);
 MODULE_LICENSE("GPL");