diff options
| -rw-r--r-- | arch/arm/mach-footbridge/cats-hw.c | 6 | ||||
| -rw-r--r-- | drivers/video/console/dummycon.c | 4 | ||||
| -rw-r--r-- | drivers/video/console/vgacon.c | 49 | ||||
| -rw-r--r-- | drivers/video/intelfb/intelfbdrv.c | 5 | ||||
| -rw-r--r-- | drivers/video/vga16fb.c | 2 | ||||
| -rw-r--r-- | include/linux/screen_info.h | 9 |
6 files changed, 34 insertions, 41 deletions
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c index ef6ccc8993e9..c261472208cb 100644 --- a/arch/arm/mach-footbridge/cats-hw.c +++ b/arch/arm/mach-footbridge/cats-hw.c | |||
| @@ -78,9 +78,9 @@ static void __init | |||
| 78 | fixup_cats(struct machine_desc *desc, struct tag *tags, | 78 | fixup_cats(struct machine_desc *desc, struct tag *tags, |
| 79 | char **cmdline, struct meminfo *mi) | 79 | char **cmdline, struct meminfo *mi) |
| 80 | { | 80 | { |
| 81 | ORIG_VIDEO_LINES = 25; | 81 | screen_info.orig_video_lines = 25; |
| 82 | ORIG_VIDEO_POINTS = 16; | 82 | screen_info.orig_video_points = 16; |
| 83 | ORIG_Y = 24; | 83 | screen_info.orig_y = 24; |
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | MACHINE_START(CATS, "Chalice-CATS") | 86 | MACHINE_START(CATS, "Chalice-CATS") |
diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c index d9315d99445f..b63860f7beab 100644 --- a/drivers/video/console/dummycon.c +++ b/drivers/video/console/dummycon.c | |||
| @@ -18,8 +18,8 @@ | |||
| 18 | */ | 18 | */ |
| 19 | 19 | ||
| 20 | #if defined(__arm__) | 20 | #if defined(__arm__) |
| 21 | #define DUMMY_COLUMNS ORIG_VIDEO_COLS | 21 | #define DUMMY_COLUMNS screen_info.orig_video_cols |
| 22 | #define DUMMY_ROWS ORIG_VIDEO_LINES | 22 | #define DUMMY_ROWS screen_info.orig_video_lines |
| 23 | #elif defined(__hppa__) | 23 | #elif defined(__hppa__) |
| 24 | /* set by Kconfig. Use 80x25 for 640x480 and 160x64 for 1280x1024 */ | 24 | /* set by Kconfig. Use 80x25 for 640x480 and 160x64 for 1280x1024 */ |
| 25 | #define DUMMY_COLUMNS CONFIG_DUMMY_CONSOLE_COLUMNS | 25 | #define DUMMY_COLUMNS CONFIG_DUMMY_CONSOLE_COLUMNS |
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index a5698714d43d..f65bcd314d54 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c | |||
| @@ -362,7 +362,7 @@ static const char *vgacon_startup(void) | |||
| 362 | u16 saved1, saved2; | 362 | u16 saved1, saved2; |
| 363 | volatile u16 *p; | 363 | volatile u16 *p; |
| 364 | 364 | ||
| 365 | if (ORIG_VIDEO_ISVGA == VIDEO_TYPE_VLFB) { | 365 | if (screen_info.orig_video_isVGA == VIDEO_TYPE_VLFB) { |
| 366 | no_vga: | 366 | no_vga: |
| 367 | #ifdef CONFIG_DUMMY_CONSOLE | 367 | #ifdef CONFIG_DUMMY_CONSOLE |
| 368 | conswitchp = &dummy_con; | 368 | conswitchp = &dummy_con; |
| @@ -373,28 +373,29 @@ static const char *vgacon_startup(void) | |||
| 373 | } | 373 | } |
| 374 | 374 | ||
| 375 | /* boot_params.screen_info initialized? */ | 375 | /* boot_params.screen_info initialized? */ |
| 376 | if ((ORIG_VIDEO_MODE == 0) && | 376 | if ((screen_info.orig_video_mode == 0) && |
| 377 | (ORIG_VIDEO_LINES == 0) && | 377 | (screen_info.orig_video_lines == 0) && |
| 378 | (ORIG_VIDEO_COLS == 0)) | 378 | (screen_info.orig_video_cols == 0)) |
| 379 | goto no_vga; | 379 | goto no_vga; |
| 380 | 380 | ||
| 381 | /* VGA16 modes are not handled by VGACON */ | 381 | /* VGA16 modes are not handled by VGACON */ |
| 382 | if ((ORIG_VIDEO_MODE == 0x0D) || /* 320x200/4 */ | 382 | if ((screen_info.orig_video_mode == 0x0D) || /* 320x200/4 */ |
| 383 | (ORIG_VIDEO_MODE == 0x0E) || /* 640x200/4 */ | 383 | (screen_info.orig_video_mode == 0x0E) || /* 640x200/4 */ |
| 384 | (ORIG_VIDEO_MODE == 0x10) || /* 640x350/4 */ | 384 | (screen_info.orig_video_mode == 0x10) || /* 640x350/4 */ |
| 385 | (ORIG_VIDEO_MODE == 0x12) || /* 640x480/4 */ | 385 | (screen_info.orig_video_mode == 0x12) || /* 640x480/4 */ |
| 386 | (ORIG_VIDEO_MODE == 0x6A)) /* 800x600/4, 0x6A is very common */ | 386 | (screen_info.orig_video_mode == 0x6A)) /* 800x600/4 (VESA) */ |
| 387 | goto no_vga; | 387 | goto no_vga; |
| 388 | 388 | ||
| 389 | vga_video_num_lines = ORIG_VIDEO_LINES; | 389 | vga_video_num_lines = screen_info.orig_video_lines; |
| 390 | vga_video_num_columns = ORIG_VIDEO_COLS; | 390 | vga_video_num_columns = screen_info.orig_video_cols; |
| 391 | state.vgabase = NULL; | 391 | state.vgabase = NULL; |
| 392 | 392 | ||
| 393 | if (ORIG_VIDEO_MODE == 7) { /* Is this a monochrome display? */ | 393 | if (screen_info.orig_video_mode == 7) { |
| 394 | /* Monochrome display */ | ||
| 394 | vga_vram_base = 0xb0000; | 395 | vga_vram_base = 0xb0000; |
| 395 | vga_video_port_reg = VGA_CRT_IM; | 396 | vga_video_port_reg = VGA_CRT_IM; |
| 396 | vga_video_port_val = VGA_CRT_DM; | 397 | vga_video_port_val = VGA_CRT_DM; |
| 397 | if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) { | 398 | if ((screen_info.orig_video_ega_bx & 0xff) != 0x10) { |
| 398 | static struct resource ega_console_resource = | 399 | static struct resource ega_console_resource = |
| 399 | { .name = "ega", .start = 0x3B0, .end = 0x3BF }; | 400 | { .name = "ega", .start = 0x3B0, .end = 0x3BF }; |
| 400 | vga_video_type = VIDEO_TYPE_EGAM; | 401 | vga_video_type = VIDEO_TYPE_EGAM; |
| @@ -422,12 +423,12 @@ static const char *vgacon_startup(void) | |||
| 422 | vga_vram_base = 0xb8000; | 423 | vga_vram_base = 0xb8000; |
| 423 | vga_video_port_reg = VGA_CRT_IC; | 424 | vga_video_port_reg = VGA_CRT_IC; |
| 424 | vga_video_port_val = VGA_CRT_DC; | 425 | vga_video_port_val = VGA_CRT_DC; |
| 425 | if ((ORIG_VIDEO_EGA_BX & 0xff) != 0x10) { | 426 | if ((screen_info.orig_video_ega_bx & 0xff) != 0x10) { |
| 426 | int i; | 427 | int i; |
| 427 | 428 | ||
| 428 | vga_vram_size = 0x8000; | 429 | vga_vram_size = 0x8000; |
| 429 | 430 | ||
| 430 | if (!ORIG_VIDEO_ISVGA) { | 431 | if (!screen_info.orig_video_isVGA) { |
| 431 | static struct resource ega_console_resource | 432 | static struct resource ega_console_resource |
| 432 | = { .name = "ega", .start = 0x3C0, .end = 0x3DF }; | 433 | = { .name = "ega", .start = 0x3C0, .end = 0x3DF }; |
| 433 | vga_video_type = VIDEO_TYPE_EGAC; | 434 | vga_video_type = VIDEO_TYPE_EGAC; |
| @@ -521,14 +522,14 @@ static const char *vgacon_startup(void) | |||
| 521 | || vga_video_type == VIDEO_TYPE_VGAC | 522 | || vga_video_type == VIDEO_TYPE_VGAC |
| 522 | || vga_video_type == VIDEO_TYPE_EGAM) { | 523 | || vga_video_type == VIDEO_TYPE_EGAM) { |
| 523 | vga_hardscroll_enabled = vga_hardscroll_user_enable; | 524 | vga_hardscroll_enabled = vga_hardscroll_user_enable; |
| 524 | vga_default_font_height = ORIG_VIDEO_POINTS; | 525 | vga_default_font_height = screen_info.orig_video_points; |
| 525 | vga_video_font_height = ORIG_VIDEO_POINTS; | 526 | vga_video_font_height = screen_info.orig_video_points; |
| 526 | /* This may be suboptimal but is a safe bet - go with it */ | 527 | /* This may be suboptimal but is a safe bet - go with it */ |
| 527 | vga_scan_lines = | 528 | vga_scan_lines = |
| 528 | vga_video_font_height * vga_video_num_lines; | 529 | vga_video_font_height * vga_video_num_lines; |
| 529 | } | 530 | } |
| 530 | 531 | ||
| 531 | vgacon_xres = ORIG_VIDEO_COLS * VGA_FONTWIDTH; | 532 | vgacon_xres = screen_info.orig_video_cols * VGA_FONTWIDTH; |
| 532 | vgacon_yres = vga_scan_lines; | 533 | vgacon_yres = vga_scan_lines; |
| 533 | 534 | ||
| 534 | if (!vga_init_done) { | 535 | if (!vga_init_done) { |
| @@ -798,7 +799,7 @@ static int vgacon_switch(struct vc_data *c) | |||
| 798 | { | 799 | { |
| 799 | int x = c->vc_cols * VGA_FONTWIDTH; | 800 | int x = c->vc_cols * VGA_FONTWIDTH; |
| 800 | int y = c->vc_rows * c->vc_font.height; | 801 | int y = c->vc_rows * c->vc_font.height; |
| 801 | int rows = ORIG_VIDEO_LINES * vga_default_font_height/ | 802 | int rows = screen_info.orig_video_lines * vga_default_font_height/ |
| 802 | c->vc_font.height; | 803 | c->vc_font.height; |
| 803 | /* | 804 | /* |
| 804 | * We need to save screen size here as it's the only way | 805 | * We need to save screen size here as it's the only way |
| @@ -818,7 +819,7 @@ static int vgacon_switch(struct vc_data *c) | |||
| 818 | 819 | ||
| 819 | if ((vgacon_xres != x || vgacon_yres != y) && | 820 | if ((vgacon_xres != x || vgacon_yres != y) && |
| 820 | (!(vga_video_num_columns % 2) && | 821 | (!(vga_video_num_columns % 2) && |
| 821 | vga_video_num_columns <= ORIG_VIDEO_COLS && | 822 | vga_video_num_columns <= screen_info.orig_video_cols && |
| 822 | vga_video_num_lines <= rows)) | 823 | vga_video_num_lines <= rows)) |
| 823 | vgacon_doresize(c, c->vc_cols, c->vc_rows); | 824 | vgacon_doresize(c, c->vc_cols, c->vc_rows); |
| 824 | } | 825 | } |
| @@ -1280,8 +1281,8 @@ static int vgacon_font_get(struct vc_data *c, struct console_font *font) | |||
| 1280 | static int vgacon_resize(struct vc_data *c, unsigned int width, | 1281 | static int vgacon_resize(struct vc_data *c, unsigned int width, |
| 1281 | unsigned int height, unsigned int user) | 1282 | unsigned int height, unsigned int user) |
| 1282 | { | 1283 | { |
| 1283 | if (width % 2 || width > ORIG_VIDEO_COLS || | 1284 | if (width % 2 || width > screen_info.orig_video_cols || |
| 1284 | height > (ORIG_VIDEO_LINES * vga_default_font_height)/ | 1285 | height > (screen_info.orig_video_lines * vga_default_font_height)/ |
| 1285 | c->vc_font.height) | 1286 | c->vc_font.height) |
| 1286 | /* let svgatextmode tinker with video timings and | 1287 | /* let svgatextmode tinker with video timings and |
| 1287 | return success */ | 1288 | return success */ |
| @@ -1313,8 +1314,8 @@ static void vgacon_save_screen(struct vc_data *c) | |||
| 1313 | * console initialization routines. | 1314 | * console initialization routines. |
| 1314 | */ | 1315 | */ |
| 1315 | vga_bootup_console = 1; | 1316 | vga_bootup_console = 1; |
| 1316 | c->vc_x = ORIG_X; | 1317 | c->vc_x = screen_info.orig_x; |
| 1317 | c->vc_y = ORIG_Y; | 1318 | c->vc_y = screen_info.orig_y; |
| 1318 | } | 1319 | } |
| 1319 | 1320 | ||
| 1320 | /* We can't copy in more then the size of the video buffer, | 1321 | /* We can't copy in more then the size of the video buffer, |
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c index 0428f211f192..e8e38edb9b5b 100644 --- a/drivers/video/intelfb/intelfbdrv.c +++ b/drivers/video/intelfb/intelfbdrv.c | |||
| @@ -804,7 +804,8 @@ static int __devinit intelfb_pci_register(struct pci_dev *pdev, | |||
| 804 | if (bailearly == 1) | 804 | if (bailearly == 1) |
| 805 | bailout(dinfo); | 805 | bailout(dinfo); |
| 806 | 806 | ||
| 807 | if (FIXED_MODE(dinfo) && ORIG_VIDEO_ISVGA != VIDEO_TYPE_VLFB) { | 807 | if (FIXED_MODE(dinfo) && |
| 808 | screen_info.orig_video_isVGA != VIDEO_TYPE_VLFB) { | ||
| 808 | ERR_MSG("Video mode must be programmed at boot time.\n"); | 809 | ERR_MSG("Video mode must be programmed at boot time.\n"); |
| 809 | cleanup(dinfo); | 810 | cleanup(dinfo); |
| 810 | return -ENODEV; | 811 | return -ENODEV; |
| @@ -815,7 +816,7 @@ static int __devinit intelfb_pci_register(struct pci_dev *pdev, | |||
| 815 | 816 | ||
| 816 | /* Initialise dinfo and related data. */ | 817 | /* Initialise dinfo and related data. */ |
| 817 | /* If an initial mode was programmed at boot time, get its details. */ | 818 | /* If an initial mode was programmed at boot time, get its details. */ |
| 818 | if (ORIG_VIDEO_ISVGA == VIDEO_TYPE_VLFB) | 819 | if (screen_info.orig_video_isVGA == VIDEO_TYPE_VLFB) |
| 819 | get_initial_mode(dinfo); | 820 | get_initial_mode(dinfo); |
| 820 | 821 | ||
| 821 | if (bailearly == 3) | 822 | if (bailearly == 3) |
diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c index 2a14d28c4163..9b3c5923365e 100644 --- a/drivers/video/vga16fb.c +++ b/drivers/video/vga16fb.c | |||
| @@ -1364,7 +1364,7 @@ static int __init vga16fb_probe(struct platform_device *dev) | |||
| 1364 | par = info->par; | 1364 | par = info->par; |
| 1365 | 1365 | ||
| 1366 | mutex_init(&par->open_lock); | 1366 | mutex_init(&par->open_lock); |
| 1367 | par->isVGA = ORIG_VIDEO_ISVGA; | 1367 | par->isVGA = screen_info.orig_video_isVGA; |
| 1368 | par->palette_blanked = 0; | 1368 | par->palette_blanked = 0; |
| 1369 | par->vesa_blanked = 0; | 1369 | par->vesa_blanked = 0; |
| 1370 | 1370 | ||
diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h index 3ee412bc00ec..ba81ffe9958a 100644 --- a/include/linux/screen_info.h +++ b/include/linux/screen_info.h | |||
| @@ -47,15 +47,6 @@ struct screen_info { | |||
| 47 | 47 | ||
| 48 | extern struct screen_info screen_info; | 48 | extern struct screen_info screen_info; |
| 49 | 49 | ||
| 50 | #define ORIG_X (screen_info.orig_x) | ||
| 51 | #define ORIG_Y (screen_info.orig_y) | ||
| 52 | #define ORIG_VIDEO_MODE (screen_info.orig_video_mode) | ||
| 53 | #define ORIG_VIDEO_COLS (screen_info.orig_video_cols) | ||
| 54 | #define ORIG_VIDEO_EGA_BX (screen_info.orig_video_ega_bx) | ||
| 55 | #define ORIG_VIDEO_LINES (screen_info.orig_video_lines) | ||
| 56 | #define ORIG_VIDEO_ISVGA (screen_info.orig_video_isVGA) | ||
| 57 | #define ORIG_VIDEO_POINTS (screen_info.orig_video_points) | ||
| 58 | |||
| 59 | #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ | 50 | #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ |
| 60 | #define VIDEO_TYPE_CGA 0x11 /* CGA Display */ | 51 | #define VIDEO_TYPE_CGA 0x11 /* CGA Display */ |
| 61 | #define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */ | 52 | #define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */ |
