]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/virgefb.c
Pull hp-pci-root into test branch
[linux-2.6-omap-h63xx.git] / drivers / video / virgefb.c
index 5ea2345dab993e8cb3aa3c28d6451f426d277737..b9fb6fb3600d59ee950b9d79fa34e0ce8f2b3f49 100644 (file)
@@ -39,7 +39,6 @@
 #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/zorro.h>
@@ -1800,7 +1799,7 @@ int __init virgefb_init(void)
                #warning release resources
                printk(KERN_ERR "virgefb.c: register_framebuffer failed\n");
                DPRINTK("EXIT\n");
-               return -EINVAL;
+               goto out_unmap;
        }
 
        printk(KERN_INFO "fb%d: %s frame buffer device, using %ldK of video memory\n",
@@ -1810,6 +1809,21 @@ int __init virgefb_init(void)
 
        DPRINTK("EXIT\n");
        return 0;
+
+out_unmap:
+       if (board_addr >= 0x01000000) {
+               if (v_ram)
+                       iounmap((void*)v_ram);
+               if (vgaio_regs)
+                       iounmap(vgaio_regs);
+               if (mmio_regs)
+                       iounmap(mmio_regs);
+               if (vcode_switch_base)
+                       iounmap((void*)vcode_switch_base);
+               v_ram = vcode_switch_base = 0;
+               vgaio_regs = mmio_regs = NULL;
+       }
+       return -EINVAL;
 }