commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1974] 2009-02-05 Vesa J?\195?\164?\195?\164skel?\195?\164inen <address@


From: Vesa Jääskeläinen
Subject: [1974] 2009-02-05 Vesa J?\195?\164?\195?\164skel?\195?\164inen <address@hidden .fi>
Date: Thu, 05 Feb 2009 18:28:58 +0000

Revision: 1974
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=1974
Author:   chaac
Date:     2009-02-05 18:28:58 +0000 (Thu, 05 Feb 2009)

Log Message:
-----------
2009-02-05  Vesa J?\195?\164?\195?\164skel?\195?\164inen  <address@hidden>

        Fixes problem when running vbetest command as reported by 
        Vladimir Serbinenko <address@hidden>.

        * (grub_vbe_set_video_mode): Fixed problem with text modes.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/video/i386/pc/vbe.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-02-04 10:52:25 UTC (rev 1973)
+++ trunk/grub2/ChangeLog       2009-02-05 18:28:58 UTC (rev 1974)
@@ -1,3 +1,10 @@
+2009-02-05  Vesa Jääskeläinen  <address@hidden>
+
+       Fixes problem when running vbetest command as reported by 
+       Vladimir Serbinenko <address@hidden>.
+
+       * (grub_vbe_set_video_mode): Fixed problem with text modes.
+
 2009-02-04  Felix Zielcke  <address@hidden>
 
        util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and

Modified: trunk/grub2/video/i386/pc/vbe.c
===================================================================
--- trunk/grub2/video/i386/pc/vbe.c     2009-02-04 10:52:25 UTC (rev 1973)
+++ trunk/grub2/video/i386/pc/vbe.c     2009-02-05 18:28:58 UTC (rev 1974)
@@ -206,36 +206,49 @@
         framebuffer.bytes_per_scan_line = active_mode_info.bytes_per_scan_line;
     }
 
-  /* Calculate bytes_per_pixel value.  */
-  switch(active_mode_info.bits_per_pixel)
+  /* Check whether mode is text mode or graphics mode.  */
+  if (active_mode_info.memory_model == GRUB_VBE_MEMORY_MODEL_TEXT)
     {
-    case 32: framebuffer.bytes_per_pixel = 4; break;
-    case 24: framebuffer.bytes_per_pixel = 3; break;
-    case 16: framebuffer.bytes_per_pixel = 2; break;
-    case 15: framebuffer.bytes_per_pixel = 2; break;
-    case 8: framebuffer.bytes_per_pixel = 1; break;
-    default:
-      grub_vbe_bios_set_mode (old_mode, 0);
-      return grub_error (GRUB_ERR_BAD_DEVICE,
-                         "cannot set VBE mode %x",
-                         mode);
-      break;
+      /* Text mode.  */
+
+      /* No special action needed for text mode as it is not supported for
+         graphical support.  */
     }
-
-  /* If video mode is in indexed color, setup default VGA palette.  */
-  if (framebuffer.index_color_mode)
+  else
     {
-      struct grub_vbe_palette_data *palette
-        = (struct grub_vbe_palette_data *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR;
+      /* Graphics mode.  */
 
-      /* Make sure that the BIOS can reach the palette.  */
-      grub_memcpy (palette, vga_colors, sizeof (vga_colors));
-      status = grub_vbe_bios_set_palette_data (sizeof (vga_colors)
-                                               / sizeof (struct 
grub_vbe_palette_data),
-                                               0,
-                                               palette);
+      /* Calculate bytes_per_pixel value.  */
+      switch(active_mode_info.bits_per_pixel)
+       {
+       case 32: framebuffer.bytes_per_pixel = 4; break;
+       case 24: framebuffer.bytes_per_pixel = 3; break;
+       case 16: framebuffer.bytes_per_pixel = 2; break;
+       case 15: framebuffer.bytes_per_pixel = 2; break;
+       case 8: framebuffer.bytes_per_pixel = 1; break;
+       default:
+         grub_vbe_bios_set_mode (old_mode, 0);
+         return grub_error (GRUB_ERR_BAD_DEVICE,
+                            "cannot set VBE mode %x",
+                            mode);
+         break;
+       }
 
-      /* Just ignore the status.  */
+      /* If video mode is in indexed color, setup default VGA palette.  */
+      if (framebuffer.index_color_mode)
+       {
+         struct grub_vbe_palette_data *palette
+           = (struct grub_vbe_palette_data *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR;
+
+         /* Make sure that the BIOS can reach the palette.  */
+         grub_memcpy (palette, vga_colors, sizeof (vga_colors));
+         status = grub_vbe_bios_set_palette_data (sizeof (vga_colors)
+                                                  / sizeof (struct 
grub_vbe_palette_data),
+                                                  0,
+                                                  palette);
+
+         /* Just ignore the status.  */
+       }
     }
 
   /* Copy mode info for caller.  */






reply via email to

[Prev in Thread] Current Thread [Next in Thread]