fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / video / amifb.c
index 3033c72..1a849b8 100644 (file)
 #include <linux/errno.h>
 #include <linux/string.h>
 #include <linux/mm.h>
-#include <linux/tty.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/fb.h>
 #include <linux/init.h>
@@ -1146,7 +1144,7 @@ static void amifb_deinit(void);
         */
 
 static int flash_cursor(void);
-static irqreturn_t amifb_interrupt(int irq, void *dev_id, struct pt_regs *fp);
+static irqreturn_t amifb_interrupt(int irq, void *dev_id);
 static u_long chipalloc(u_long size);
 static void chipfree(void);
 
@@ -2409,10 +2407,10 @@ default_chipset:
                                                   fb_info.fix.smem_len);
        if (!videomemory) {
                printk("amifb: WARNING! unable to map videomem cached writethrough\n");
-               videomemory = ZTWO_VADDR(fb_info.fix.smem_start);
-       }
+               fb_info.screen_base = (char *)ZTWO_VADDR(fb_info.fix.smem_start);
+       } else
+               fb_info.screen_base = (char *)videomemory;
 
-       fb_info.screen_base = (char *)videomemory;
        memset(dummysprite, 0, DUMMYSPRITEMEMSIZE);
 
        /*
@@ -2455,6 +2453,8 @@ static void amifb_deinit(void)
 {
        fb_dealloc_cmap(&fb_info.cmap);
        chipfree();
+       if (videomemory)
+               iounmap((void*)videomemory);
        release_mem_region(CUSTOM_PHYSADDR+0xe0, 0x120);
        custom.dmacon = DMAF_ALL | DMAF_MASTER;
 }
@@ -2494,7 +2494,7 @@ static int flash_cursor(void)
         * VBlank Display Interrupt
         */
 
-static irqreturn_t amifb_interrupt(int irq, void *dev_id, struct pt_regs *fp)
+static irqreturn_t amifb_interrupt(int irq, void *dev_id)
 {
        if (do_vmode_pan || do_vmode_full)
                ami_update_display();
@@ -2906,14 +2906,6 @@ static int ami_decode_var(struct fb_var_screeninfo *var,
        par->crsr.spot_x = par->crsr.spot_y = 0;
        par->crsr.height = par->crsr.width = 0;
 
-#if 0  /* fbmon not done.  uncomment for 2.5.x -brad */
-       if (!fbmon_valid_timings(pixclock[clk_shift], htotal, vtotal,
-                                &fb_info)) {
-               DPRINTK("mode doesn't fit for monitor\n");
-               return -EINVAL;
-       }
-#endif
-
        return 0;
 }