vserver 1.9.3
[linux-2.6.git] / drivers / video / acornfb.c
index d91a2f8..f7bfbc7 100644 (file)
@@ -1010,7 +1010,7 @@ static void __init acornfb_init_fbinfo(void)
        first = 0;
 
        fb_info.fbops           = &acornfb_ops;
-       fb_info.flags           = FBINFO_FLAG_DEFAULT;
+       fb_info.flags           = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN;
        fb_info.pseudo_palette  = current_par.pseudo_palette;
 
        strcpy(fb_info.fix.id, "Acorn");
@@ -1246,6 +1246,8 @@ acornfb_detect_monitortype(void)
 
 /*
  * This enables the unused memory to be freed on older Acorn machines.
+ * We are freeing memory on behalf of the architecture initialisation
+ * code here.
  */
 static inline void
 free_unused_pages(unsigned int virtual_start, unsigned int virtual_end)
@@ -1268,7 +1270,7 @@ free_unused_pages(unsigned int virtual_start, unsigned int virtual_end)
                 */
                page = virt_to_page(virtual_start);
                ClearPageReserved(page);
-               atomic_set(&page->count, 1);
+               set_page_count(page, 1);
                free_page(virtual_start);
 
                virtual_start += PAGE_SIZE;
@@ -1289,6 +1291,11 @@ acornfb_init(void)
        unsigned long size;
        u_int h_sync, v_sync;
        int rc, i;
+       char *option = NULL;
+
+       if (fb_get_options("acornfb", &option))
+               return -ENODEV;
+       acornfb_setup(option);
 
        acornfb_init_fbinfo();
 
@@ -1454,6 +1461,8 @@ acornfb_init(void)
        return 0;
 }
 
+module_init(acornfb_init);
+
 MODULE_AUTHOR("Russell King");
 MODULE_DESCRIPTION("VIDC 1/1a/20 framebuffer driver");
 MODULE_LICENSE("GPL");