[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[2505] 2009-08-17 Michal Suchanek <address@hidden>
From: |
Vladimir Serbinenko |
Subject: |
[2505] 2009-08-17 Michal Suchanek <address@hidden> |
Date: |
Mon, 17 Aug 2009 13:44:08 +0000 |
Revision: 2505
http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2505
Author: phcoder
Date: 2009-08-17 13:44:07 +0000 (Mon, 17 Aug 2009)
Log Message:
-----------
2009-08-17 Michal Suchanek <address@hidden>
VBE cleanup.
* video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate).
(grub_vbe_set_video_mode): Save active mode info
only after setting the mode.
(grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as
second argument.
Modified Paths:
--------------
trunk/grub2/ChangeLog
trunk/grub2/video/i386/pc/vbe.c
Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog 2009-08-17 13:37:22 UTC (rev 2504)
+++ trunk/grub2/ChangeLog 2009-08-17 13:44:07 UTC (rev 2505)
@@ -1,5 +1,15 @@
2009-08-17 Michal Suchanek <address@hidden>
+ VBE cleanup.
+
+ * video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate).
+ (grub_vbe_set_video_mode): Save active mode info
+ only after setting the mode.
+ (grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as
+ second argument.
+
+2009-08-17 Michal Suchanek <address@hidden>
+
Rename variables for clarity.
* video/i386/pc/vbe.c (active_mode_info): Renamed to ...
Modified: trunk/grub2/video/i386/pc/vbe.c
===================================================================
--- trunk/grub2/video/i386/pc/vbe.c 2009-08-17 13:37:22 UTC (rev 2504)
+++ trunk/grub2/video/i386/pc/vbe.c 2009-08-17 13:44:07 UTC (rev 2505)
@@ -46,7 +46,6 @@
} framebuffer;
static grub_uint32_t initial_vbe_mode;
-static grub_uint32_t vbe_mode_in_use = 0x55aa;
static grub_uint16_t *vbe_mode_list;
static void *
@@ -111,10 +110,11 @@
grub_err_t
grub_vbe_set_video_mode (grub_uint32_t vbe_mode,
- struct grub_vbe_mode_info_block *vbe_mode_info)
+ struct grub_vbe_mode_info_block *vbe_mode_info)
{
grub_vbe_status_t status;
grub_uint32_t old_vbe_mode;
+ struct grub_vbe_mode_info_block new_vbe_mode_info;
grub_err_t err;
/* Make sure that VBE is supported. */
@@ -123,7 +123,7 @@
return grub_errno;
/* Try to get mode info. */
- grub_vbe_get_video_mode_info (vbe_mode, &active_vbe_mode_info);
+ grub_vbe_get_video_mode_info (vbe_mode, &new_vbe_mode_info);
if (grub_errno != GRUB_ERR_NONE)
return grub_errno;
@@ -134,7 +134,7 @@
vbe_mode |= 1 << 14;
/* Determine frame buffer pixel format. */
- switch (active_vbe_mode_info.memory_model)
+ switch (new_vbe_mode_info.memory_model)
{
case GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL:
framebuffer.index_color_mode = 1;
@@ -147,7 +147,7 @@
default:
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
"unsupported pixel format 0x%x",
- active_vbe_mode_info.memory_model);
+ new_vbe_mode_info.memory_model);
}
}
@@ -163,6 +163,7 @@
/* Save information for later usage. */
framebuffer.active_vbe_mode = vbe_mode;
+ grub_memcpy (&active_vbe_mode_info, &new_vbe_mode_info, sizeof
(active_vbe_mode_info));
if (vbe_mode < 0x100)
{
@@ -172,16 +173,16 @@
}
else
{
- framebuffer.ptr = (grub_uint8_t *) active_vbe_mode_info.phys_base_addr;
+ framebuffer.ptr = (grub_uint8_t *) new_vbe_mode_info.phys_base_addr;
if (controller_info.version >= 0x300)
- framebuffer.bytes_per_scan_line =
active_vbe_mode_info.lin_bytes_per_scan_line;
+ framebuffer.bytes_per_scan_line =
new_vbe_mode_info.lin_bytes_per_scan_line;
else
- framebuffer.bytes_per_scan_line =
active_vbe_mode_info.bytes_per_scan_line;
+ framebuffer.bytes_per_scan_line =
new_vbe_mode_info.bytes_per_scan_line;
}
/* Check whether mode is text mode or graphics mode. */
- if (active_vbe_mode_info.memory_model == GRUB_VBE_MEMORY_MODEL_TEXT)
+ if (new_vbe_mode_info.memory_model == GRUB_VBE_MEMORY_MODEL_TEXT)
{
/* Text mode. */
@@ -193,7 +194,7 @@
/* Graphics mode. */
/* Calculate bytes_per_pixel value. */
- switch(active_vbe_mode_info.bits_per_pixel)
+ switch(new_vbe_mode_info.bits_per_pixel)
{
case 32: framebuffer.bytes_per_pixel = 4; break;
case 24: framebuffer.bytes_per_pixel = 3; break;
@@ -238,7 +239,7 @@
/* Copy mode info for caller. */
if (vbe_mode_info)
- grub_memcpy (vbe_mode_info, &active_vbe_mode_info, sizeof
(*vbe_mode_info));
+ grub_memcpy (vbe_mode_info, &new_vbe_mode_info, sizeof (*vbe_mode_info));
return GRUB_ERR_NONE;
}
@@ -468,14 +469,11 @@
grub_err_t err;
/* If this fails, then we have mode selection heuristics problem,
or adapter failure. */
- grub_vbe_set_video_mode (best_vbe_mode, &active_vbe_mode_info);
+ /* grub_vbe_set_video_mode already sets active_vbe_mode_info. */
+ grub_vbe_set_video_mode (best_vbe_mode, NULL);
if (grub_errno != GRUB_ERR_NONE)
return grub_errno;
- /* Now we are happily in requested video mode. Cache some info
- in order to fasten later operations. */
- vbe_mode_in_use = best_vbe_mode;
-
/* Fill mode info details. */
framebuffer.mode_info.width = active_vbe_mode_info.x_resolution;
framebuffer.mode_info.height = active_vbe_mode_info.y_resolution;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [2505] 2009-08-17 Michal Suchanek <address@hidden>,
Vladimir Serbinenko <=