git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
video
/
virgefb.c
diff --git
a/drivers/video/virgefb.c
b/drivers/video/virgefb.c
index
8d512fd
..
b9fb6fb
100644
(file)
--- a/
drivers/video/virgefb.c
+++ b/
drivers/video/virgefb.c
@@
-39,7
+39,6
@@
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#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>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/zorro.h>
@@
-616,8
+615,7
@@
static struct {
#endif
};
#endif
};
-#define arraysize(x) (sizeof(x)/sizeof(*(x)))
-#define NUM_TOTAL_MODES arraysize(virgefb_predefined)
+#define NUM_TOTAL_MODES ARRAY_SIZE(virgefb_predefined)
/*
* Default to 800x600 for video=virge8:, virge16: or virge32:
/*
* Default to 800x600 for video=virge8:, virge16: or virge32:
@@
-1801,7
+1799,7
@@
int __init virgefb_init(void)
#warning release resources
printk(KERN_ERR "virgefb.c: register_framebuffer failed\n");
DPRINTK("EXIT\n");
#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",
}
printk(KERN_INFO "fb%d: %s frame buffer device, using %ldK of video memory\n",
@@
-1809,9
+1807,23
@@
int __init virgefb_init(void)
/* TODO: This driver cannot be unloaded yet */
/* TODO: This driver cannot be unloaded yet */
- MOD_INC_USE_COUNT;
DPRINTK("EXIT\n");
return 0;
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;
}
}
@@
-2064,14
+2076,6
@@
int init_module(void)
{
return virgefb_init();
}
{
return virgefb_init();
}
-
-void cleanup_module(void)
-{
- /* Not reached because the usecount will never be
- decremented to zero */
- unregister_framebuffer(&fb_info);
- /* TODO: clean up ... */
-}
#endif /* MODULE */
static int cv3d_has_4mb(void)
#endif /* MODULE */
static int cv3d_has_4mb(void)