|
@@ -2804,8 +2804,19 @@ int __init atafb_init(void)
|
|
|
atafb_set_disp(-1, &fb_info);
|
|
|
do_install_cmap(0, &fb_info);
|
|
|
|
|
|
- if (register_framebuffer(&fb_info) < 0)
|
|
|
+ if (register_framebuffer(&fb_info) < 0) {
|
|
|
+#ifdef ATAFB_EXT
|
|
|
+ if (external_addr) {
|
|
|
+ iounmap(external_addr);
|
|
|
+ external_addr = NULL;
|
|
|
+ }
|
|
|
+ if (external_vgaiobase) {
|
|
|
+ iounmap((void*)external_vgaiobase);
|
|
|
+ external_vgaiobase = 0;
|
|
|
+ }
|
|
|
+#endif
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
printk("Determined %dx%d, depth %d\n",
|
|
|
disp.var.xres, disp.var.yres, disp.var.bits_per_pixel);
|