diff options
| -rw-r--r-- | arch/x86/boot/video-vesa.c | 7 | ||||
| -rw-r--r-- | arch/x86/boot/video-vga.c | 10 | ||||
| -rw-r--r-- | arch/x86/boot/video.c | 5 | ||||
| -rw-r--r-- | arch/x86/boot/video.h | 20 | ||||
| -rw-r--r-- | arch/x86/kernel/e820.c | 2 | 
5 files changed, 4 insertions, 40 deletions
| diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c index 275dd177f198..11e8c6eb80a1 100644 --- a/arch/x86/boot/video-vesa.c +++ b/arch/x86/boot/video-vesa.c | |||
| @@ -31,7 +31,6 @@ static inline void vesa_store_mode_params_graphics(void) {} | |||
| 31 | 31 | ||
| 32 | static int vesa_probe(void) | 32 | static int vesa_probe(void) | 
| 33 | { | 33 | { | 
| 34 | #if defined(CONFIG_VIDEO_VESA) || defined(CONFIG_FIRMWARE_EDID) | ||
| 35 | struct biosregs ireg, oreg; | 34 | struct biosregs ireg, oreg; | 
| 36 | u16 mode; | 35 | u16 mode; | 
| 37 | addr_t mode_ptr; | 36 | addr_t mode_ptr; | 
| @@ -49,8 +48,7 @@ static int vesa_probe(void) | |||
| 49 | vginfo.signature != VESA_MAGIC || | 48 | vginfo.signature != VESA_MAGIC || | 
| 50 | vginfo.version < 0x0102) | 49 | vginfo.version < 0x0102) | 
| 51 | return 0; /* Not present */ | 50 | return 0; /* Not present */ | 
| 52 | #endif /* CONFIG_VIDEO_VESA || CONFIG_FIRMWARE_EDID */ | 51 | |
| 53 | #ifdef CONFIG_VIDEO_VESA | ||
| 54 | set_fs(vginfo.video_mode_ptr.seg); | 52 | set_fs(vginfo.video_mode_ptr.seg); | 
| 55 | mode_ptr = vginfo.video_mode_ptr.off; | 53 | mode_ptr = vginfo.video_mode_ptr.off; | 
| 56 | 54 | ||
| @@ -102,9 +100,6 @@ static int vesa_probe(void) | |||
| 102 | } | 100 | } | 
| 103 | 101 | ||
| 104 | return nmodes; | 102 | return nmodes; | 
| 105 | #else | ||
| 106 | return 0; | ||
| 107 | #endif /* CONFIG_VIDEO_VESA */ | ||
| 108 | } | 103 | } | 
| 109 | 104 | ||
| 110 | static int vesa_set_mode(struct mode_info *mode) | 105 | static int vesa_set_mode(struct mode_info *mode) | 
| diff --git a/arch/x86/boot/video-vga.c b/arch/x86/boot/video-vga.c index 8f8d827e254d..819caa1f2008 100644 --- a/arch/x86/boot/video-vga.c +++ b/arch/x86/boot/video-vga.c | |||
| @@ -47,14 +47,6 @@ static u8 vga_set_basic_mode(void) | |||
| 47 | 47 | ||
| 48 | initregs(&ireg); | 48 | initregs(&ireg); | 
| 49 | 49 | ||
| 50 | #ifdef CONFIG_VIDEO_400_HACK | ||
| 51 | if (adapter >= ADAPTER_VGA) { | ||
| 52 | ireg.ax = 0x1202; | ||
| 53 | ireg.bx = 0x0030; | ||
| 54 | intcall(0x10, &ireg, NULL); | ||
| 55 | } | ||
| 56 | #endif | ||
| 57 | |||
| 58 | ax = 0x0f00; | 50 | ax = 0x0f00; | 
| 59 | intcall(0x10, &ireg, &oreg); | 51 | intcall(0x10, &ireg, &oreg); | 
| 60 | mode = oreg.al; | 52 | mode = oreg.al; | 
| @@ -62,11 +54,9 @@ static u8 vga_set_basic_mode(void) | |||
| 62 | set_fs(0); | 54 | set_fs(0); | 
| 63 | rows = rdfs8(0x484); /* rows minus one */ | 55 | rows = rdfs8(0x484); /* rows minus one */ | 
| 64 | 56 | ||
| 65 | #ifndef CONFIG_VIDEO_400_HACK | ||
| 66 | if ((oreg.ax == 0x5003 || oreg.ax == 0x5007) && | 57 | if ((oreg.ax == 0x5003 || oreg.ax == 0x5007) && | 
| 67 | (rows == 0 || rows == 24)) | 58 | (rows == 0 || rows == 24)) | 
| 68 | return mode; | 59 | return mode; | 
| 69 | #endif | ||
| 70 | 60 | ||
| 71 | if (mode != 3 && mode != 7) | 61 | if (mode != 3 && mode != 7) | 
| 72 | mode = 3; | 62 | mode = 3; | 
| diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c index bad728b76fc2..d42da3802499 100644 --- a/arch/x86/boot/video.c +++ b/arch/x86/boot/video.c | |||
| @@ -221,7 +221,6 @@ static unsigned int mode_menu(void) | |||
| 221 | } | 221 | } | 
| 222 | } | 222 | } | 
| 223 | 223 | ||
| 224 | #ifdef CONFIG_VIDEO_RETAIN | ||
| 225 | /* Save screen content to the heap */ | 224 | /* Save screen content to the heap */ | 
| 226 | static struct saved_screen { | 225 | static struct saved_screen { | 
| 227 | int x, y; | 226 | int x, y; | 
| @@ -299,10 +298,6 @@ static void restore_screen(void) | |||
| 299 | ireg.dl = saved.curx; | 298 | ireg.dl = saved.curx; | 
| 300 | intcall(0x10, &ireg, NULL); | 299 | intcall(0x10, &ireg, NULL); | 
| 301 | } | 300 | } | 
| 302 | #else | ||
| 303 | #define save_screen() ((void)0) | ||
| 304 | #define restore_screen() ((void)0) | ||
| 305 | #endif | ||
| 306 | 301 | ||
| 307 | void set_video(void) | 302 | void set_video(void) | 
| 308 | { | 303 | { | 
| diff --git a/arch/x86/boot/video.h b/arch/x86/boot/video.h index 5bb174a997fc..ff339c5db311 100644 --- a/arch/x86/boot/video.h +++ b/arch/x86/boot/video.h | |||
| @@ -17,19 +17,8 @@ | |||
| 17 | 17 | ||
| 18 | #include <linux/types.h> | 18 | #include <linux/types.h> | 
| 19 | 19 | ||
| 20 | /* Enable autodetection of SVGA adapters and modes. */ | 20 | /* | 
| 21 | #undef CONFIG_VIDEO_SVGA | 21 | * This code uses an extended set of video mode numbers. These include: | 
| 22 | |||
| 23 | /* Enable autodetection of VESA modes */ | ||
| 24 | #define CONFIG_VIDEO_VESA | ||
| 25 | |||
| 26 | /* Retain screen contents when switching modes */ | ||
| 27 | #define CONFIG_VIDEO_RETAIN | ||
| 28 | |||
| 29 | /* Force 400 scan lines for standard modes (hack to fix bad BIOS behaviour */ | ||
| 30 | #undef CONFIG_VIDEO_400_HACK | ||
| 31 | |||
| 32 | /* This code uses an extended set of video mode numbers. These include: | ||
| 33 | * Aliases for standard modes | 22 | * Aliases for standard modes | 
| 34 | * NORMAL_VGA (-1) | 23 | * NORMAL_VGA (-1) | 
| 35 | * EXTENDED_VGA (-2) | 24 | * EXTENDED_VGA (-2) | 
| @@ -67,13 +56,8 @@ | |||
| 67 | /* The "recalculate timings" flag */ | 56 | /* The "recalculate timings" flag */ | 
| 68 | #define VIDEO_RECALC 0x8000 | 57 | #define VIDEO_RECALC 0x8000 | 
| 69 | 58 | ||
| 70 | /* Define DO_STORE according to CONFIG_VIDEO_RETAIN */ | ||
| 71 | #ifdef CONFIG_VIDEO_RETAIN | ||
| 72 | void store_screen(void); | 59 | void store_screen(void); | 
| 73 | #define DO_STORE() store_screen() | 60 | #define DO_STORE() store_screen() | 
| 74 | #else | ||
| 75 | #define DO_STORE() ((void)0) | ||
| 76 | #endif /* CONFIG_VIDEO_RETAIN */ | ||
| 77 | 61 | ||
| 78 | /* | 62 | /* | 
| 79 | * Mode table structures | 63 | * Mode table structures | 
| diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 5cb5725b2bae..147005a1cc3c 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
| @@ -115,7 +115,7 @@ static void __init __e820_add_region(struct e820map *e820x, u64 start, u64 size, | |||
| 115 | { | 115 | { | 
| 116 | int x = e820x->nr_map; | 116 | int x = e820x->nr_map; | 
| 117 | 117 | ||
| 118 | if (x == ARRAY_SIZE(e820x->map)) { | 118 | if (x >= ARRAY_SIZE(e820x->map)) { | 
| 119 | printk(KERN_ERR "Ooops! Too many entries in the memory map!\n"); | 119 | printk(KERN_ERR "Ooops! Too many entries in the memory map!\n"); | 
| 120 | return; | 120 | return; | 
| 121 | } | 121 | } | 
