retitle 544155 gfxterm breaks booting on Thinkpads
thanks

Am Sonntag, den 30.08.2009, 23:40 +0200 schrieb Witold Baryluk:

> > Maybe it helps if you disable the gfxterm.
> > In /etc/default/grub uncomment `GRUB_TERMINAL=console' and run
> > update-grub.
> 
> Now this is interesting. After following this instructions, grub (still
> 1.92+20090829-1 from unstable) started working.
> 
> Then I downgraded manually to 1.92+20090808-1 from squeeze (by manual
> dpkg -i with .deb packages grub-pc and grub-common, and then
> additionally grub-install /dev/sda to be sure), to be sure there is no
> problem with&without gfxterm enabled. And there is non.
> 
> Lastly i reinstalled manually 1.92+20090826-3 and retested it.
> 
> Summary:
> 
> 1.92+20090808-1 works.
> 1.92+20090826-3 works only with GRUB_TERMINAL=console
> 1.92+20090829-1 works only with GRUB_TERMINAL=console
> 
> I need to say that in my configuration even 1.92+20090808-1 with
> commented out GRUB_TERMINAL (so using gfxterm), grub is still using text
> mode (I have installed grub2-splashimages 1.0.0, and it is detected by
> update-grub when GRUB_temrinal is commented as providing
> moreblue-orbit-grub.png)

moreblue-orbit-grub.png is actually provided by desktop-base, but we
copy it in the postinst to /boot.

> I know that grub2 have gfx mode (i have desktop computer which have this
> working), but on my laptop it is not working.
> 
> So it can be something with gfx modes in thinkpad T4x specifically.
> 
> > It would be good if some of you could do a svn-bisect to find the exact
> > commit out which broke it.
> 
> I can try do do this. Should i start from debian source package and then
> bisect using official grub2 svn repository, building for each bisection
> step a .deb package?

Luckly there aren't that many commits related to the graphical
subsystem.
Try the attached patch. I think that's the best try.
Instructions for compiling the Debian packages are here:
http://wiki.debian.org/de/GRUB2/Anleitung/DebianPaketVonOriginalQuelltext

But I suggest you remove from debian/control all packages you don't
need, else compiling will take unnecessary long.
The debian/ directory should work with all upstream revisions between
2549 (beta1) and 2488 (1.96+20090808)

If that patch isn't the reason for the break, I think it would be good
to reverse 2494, 2527 or 2494
The others don't look like they could cause this.


> PS. I hate bisecting kernel or bootloaders. Zylions of reboots :)
> (and because of svn, i would need to everytime login fully into gnome,
> because of my wifi networking is working only there :/).
> 


-- 
Felix Zielcke
Proud Debian Maintainer
Index: video/fb/fbblit.c
===================================================================
--- video/fb/fbblit.c	(Revision 2542)
+++ video/fb/fbblit.c	(Revision 2541)
@@ -90,302 +90,6 @@
     }
 }
 
-/* Optimized replacing blitter for 1-bit to 32bit.  */
-void
-grub_video_fbblit_replace_32bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint32_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width; i++)
-        {
-	  if (*srcptr & srcmask)
-	    *(grub_uint32_t *) dstptr = fgcolor;
-	  else
-	    *(grub_uint32_t *) dstptr = bgcolor;
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr += 4;
-        }
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
-
-
-/* Optimized replacing blitter for 1-bit to 24-bit.  */
-void
-grub_video_fbblit_replace_24bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint32_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width - 1; i++)
-        {
-	  if (*srcptr & srcmask)
-	    *(grub_uint32_t *) dstptr = fgcolor;
-	  else
-	    *(grub_uint32_t *) dstptr = bgcolor;
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr += 3;
-        }
-
-      if (*srcptr & srcmask)
-	{
-	  *dstptr++ = fgcolor & 0xff;
-	  *dstptr++ = (fgcolor & 0xff00) >> 8;
-	  *dstptr++ = (fgcolor & 0xff0000) >> 16;
-	}
-      else
-	{
-	  *dstptr++ = bgcolor & 0xff;
-	  *dstptr++ = (bgcolor & 0xff00) >> 8;
-	  *dstptr++ = (bgcolor & 0xff0000) >> 16;
-	}
-      srcmask >>= 1;
-      if (!srcmask)
-	{
-	  srcptr++;
-	  srcmask = 0x80;
-	}
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
-
-/* Optimized replacing blitter for 1-bit to 16-bit.  */
-void
-grub_video_fbblit_replace_16bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint16_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width; i++)
-        {
-	  if (*srcptr & srcmask)
-	    *(grub_uint16_t *) dstptr = fgcolor;
-	  else
-	    *(grub_uint16_t *) dstptr = bgcolor;
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr += 2;
-        }
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
-
-/* Optimized replacing blitter for 1-bit to 8-bit.  */
-void
-grub_video_fbblit_replace_8bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint8_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width; i++)
-        {
-	  if (*srcptr & srcmask)
-	    *(grub_uint8_t *) dstptr = fgcolor;
-	  else
-	    *(grub_uint8_t *) dstptr = bgcolor;
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr++;
-        }
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
-
 /* Optimized replacing blitter for RGBX8888 to BGRX8888.  */
 void
 grub_video_fbblit_replace_BGRX8888_RGBX8888 (struct grub_video_fbblit_info *dst,
@@ -1122,294 +826,3 @@
         }
     }
 }
-
-/* Optimized blending blitter for 1-bit to XXXA8888.  */
-void
-grub_video_fbblit_blend_XXXA8888_1bit (struct grub_video_fbblit_info *dst,
-				       struct grub_video_fbblit_info *src,
-				       int x, int y,
-				       int width, int height,
-				       int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint32_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width; i++)
-        {
-	  grub_uint32_t color;
-	  grub_uint8_t a;
-
-	  if (*srcptr & srcmask)
-	    color = fgcolor;
-	  else
-	    color = bgcolor;
-	  a = (color >> 24) & 0xff;
-
-	  if (a == 255)
-	    *(grub_uint32_t *) dstptr = color;
-	  else if (a != 0)
-	    {
-	      grub_uint8_t s1 = (color >> 0) & 0xFF;
-	      grub_uint8_t s2 = (color >> 8) & 0xFF;
-	      grub_uint8_t s3 = (color >> 16) & 0xFF;
-
-	      grub_uint8_t d1 = (*(grub_uint32_t *) dstptr >> 0) & 0xFF;
-	      grub_uint8_t d2 = (*(grub_uint32_t *) dstptr >> 8) & 0xFF;
-	      grub_uint8_t d3 = (*(grub_uint32_t *) dstptr >> 16) & 0xFF;
-
-	      d1 = (d1 * (255 - a) + s1 * a) / 255;
-	      d2 = (d2 * (255 - a) + s2 * a) / 255;
-	      d3 = (d3 * (255 - a) + s3 * a) / 255;
-
-	      *(grub_uint32_t *) dstptr = (a << 24) | (d3 << 16) | (d2 << 8)
-		| d1;
-	    }
-
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr += 4;
-        }
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
-
-/* Optimized blending blitter for 1-bit to XXX888.  */
-void
-grub_video_fbblit_blend_XXX888_1bit (struct grub_video_fbblit_info *dst,
-				     struct grub_video_fbblit_info *src,
-				     int x, int y,
-				     int width, int height,
-				     int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint32_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width; i++)
-        {
-	  grub_uint32_t color;
-	  grub_uint8_t a;
-	  if (*srcptr & srcmask)
-	    {
-	      color = fgcolor;
-	      a = src->mode_info->fg_alpha;
-	    }
-	  else
-	    {
-	      color = bgcolor;
-	      a = src->mode_info->bg_alpha;
-	    }
-
-	  if (a == 255)
-	    {
-	      ((grub_uint8_t *) dstptr)[0] = color & 0xff;
-	      ((grub_uint8_t *) dstptr)[1] = (color & 0xff00) >> 8;
-	      ((grub_uint8_t *) dstptr)[2] = (color & 0xff0000) >> 16;
-	    }
-	  else if (a != 0)
-	    {
-	      grub_uint8_t s1 = (color >> 0) & 0xFF;
-	      grub_uint8_t s2 = (color >> 8) & 0xFF;
-	      grub_uint8_t s3 = (color >> 16) & 0xFF;
-
-	      grub_uint8_t d1 = (*(grub_uint32_t *) dstptr >> 0) & 0xFF;
-	      grub_uint8_t d2 = (*(grub_uint32_t *) dstptr >> 8) & 0xFF;
-	      grub_uint8_t d3 = (*(grub_uint32_t *) dstptr >> 16) & 0xFF;
-
-	      ((grub_uint8_t *) dstptr)[0] = (d1 * (255 - a) + s1 * a) / 255;
-	      ((grub_uint8_t *) dstptr)[1] = (d2 * (255 - a) + s2 * a) / 255;
-	      ((grub_uint8_t *) dstptr)[2] = (d3 * (255 - a) + s3 * a) / 255;
-	    }
-
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr += 3;
-        }
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
-
-/* Optimized blending blitter for 1-bit to XXX888.  */
-void
-grub_video_fbblit_blend_XXX565_1bit (struct grub_video_fbblit_info *dst,
-				     struct grub_video_fbblit_info *src,
-				     int x, int y,
-				     int width, int height,
-				     int offset_x, int offset_y)
-{
-  int i;
-  int j;
-  grub_uint8_t *srcptr;
-  grub_uint8_t *dstptr;
-  grub_uint8_t srcmask;
-  unsigned int dstrowskip;
-  unsigned int srcrowskipbyte, srcrowskipbit;
-  grub_uint16_t fgcolor, bgcolor;
-  int bit_index;
-
-  /* Calculate the number of bytes to advance from the end of one line
-     to the beginning of the next line.  */
-  dstrowskip = dst->mode_info->pitch - dst->mode_info->bytes_per_pixel * width;
-  srcrowskipbyte = (src->mode_info->width - width) >> 3;
-  srcrowskipbit = (src->mode_info->width - width) & 7;
-
-  bit_index = offset_y * src->mode_info->width + offset_x;
-  srcptr = (grub_uint8_t *) src->data + (bit_index >> 3);
-  srcmask = 1 << (~bit_index & 7);
-  dstptr = (grub_uint8_t *) grub_video_fb_get_video_ptr (dst, x, y);
-
-  fgcolor = grub_video_fb_map_rgba (src->mode_info->fg_red,
-				    src->mode_info->fg_green,
-				    src->mode_info->fg_blue,
-				    src->mode_info->fg_alpha);
-
-  bgcolor = grub_video_fb_map_rgba (src->mode_info->bg_red,
-				    src->mode_info->bg_green,
-				    src->mode_info->bg_blue,
-				    src->mode_info->bg_alpha);
-
-  for (j = 0; j < height; j++)
-    {
-      for (i = 0; i < width; i++)
-        {
-	  grub_uint32_t color;
-	  grub_uint8_t a;
-	  if (*srcptr & srcmask)
-	    {
-	      color = fgcolor;
-	      a = src->mode_info->fg_alpha;
-	    }
-	  else
-	    {
-	      color = bgcolor;
-	      a = src->mode_info->bg_alpha;
-	    }
-
-	  if (a == 255)
-	    *(grub_uint16_t *) dstptr = color;
-	  else if (a != 0)
-	    {
-	      grub_uint8_t s1 = (color >> 0) & 0x1F;
-	      grub_uint8_t s2 = (color >> 5) & 0x3F;
-	      grub_uint8_t s3 = (color >> 11) & 0x1F;
-
-	      grub_uint8_t d1 = (*(grub_uint16_t *) dstptr >> 0) & 0x1F;
-	      grub_uint8_t d2 = (*(grub_uint16_t *) dstptr >> 5) & 0x3F;
-	      grub_uint8_t d3 = (*(grub_uint16_t *) dstptr >> 11) & 0x1F;
-
-	      d1 = (d1 * (255 - a) + s1 * a) / 255;
-	      d2 = (d2 * (255 - a) + s2 * a) / 255;
-	      d3 = (d3 * (255 - a) + s3 * a) / 255;
-
-	      *(grub_uint16_t *) dstptr = (d1 & 0x1f) | ((d2 & 0x3f) << 5)
-		| ((d3 & 0x1f) << 11);
-	    }
-
-	  srcmask >>= 1;
-	  if (!srcmask)
-	    {
-	      srcptr++;
-	      srcmask = 0x80;
-	    }
-
-	  dstptr += 2;
-        }
-
-      srcptr += srcrowskipbyte;
-      if (srcmask >> srcrowskipbit)
-	srcmask >>= srcrowskipbit;
-      else
-	{
-	  srcptr++;
-	  srcmask <<= 8 - srcrowskipbit;
-	}
-      dstptr += dstrowskip;
-    }
-}
Index: video/fb/video_fb.c
===================================================================
--- video/fb/video_fb.c	(Revision 2542)
+++ video/fb/video_fb.c	(Revision 2541)
@@ -587,37 +587,6 @@
 	      return;
 	    }
 	}
-      else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED)
-	{
-	  if (target->mode_info->bpp == 32)
-	    {
-	      grub_video_fbblit_replace_32bit_1bit (target, source,
-						    x, y, width, height,
-						    offset_x, offset_y);
-	      return;
-	    }
-	  else if (target->mode_info->bpp == 24)
-	    {
-	      grub_video_fbblit_replace_24bit_1bit (target, source,
-						    x, y, width, height,
-						    offset_x, offset_y);
-	      return;
-	    }
-	  else if (target->mode_info->bpp == 16)
-	    {
-	      grub_video_fbblit_replace_16bit_1bit (target, source,
-						    x, y, width, height,
-						    offset_x, offset_y);
-	      return;
-	    }
-	  else if (target->mode_info->bpp == 8)
-	    {
-	      grub_video_fbblit_replace_8bit_1bit (target, source,
-						   x, y, width, height,
-						   offset_x, offset_y);
-	      return;
-	    }
-	}
 
       /* No optimized replace operator found, use default (slow) blitter.  */
       grub_video_fbblit_replace (target, source, x, y, width, height,
@@ -705,42 +674,7 @@
 	      return;
 	    }
 	}
-      else if (source->mode_info->blit_format == GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED)
-	{
-	  if (target->mode_info->blit_format
-	      == GRUB_VIDEO_BLIT_FORMAT_BGRA_8888
-	      || target->mode_info->blit_format
-	      == GRUB_VIDEO_BLIT_FORMAT_RGBA_8888)
-	    {
-	      grub_video_fbblit_blend_XXXA8888_1bit (target, source,
-						     x, y, width, height,
-						     offset_x, offset_y);
-	      return;
-	    }
-	  else if (target->mode_info->blit_format
-		   == GRUB_VIDEO_BLIT_FORMAT_BGR_888
-		   || target->mode_info->blit_format
-		   == GRUB_VIDEO_BLIT_FORMAT_RGB_888)
-	    {
-	      grub_video_fbblit_blend_XXX888_1bit (target, source,
-						   x, y, width, height,
-						   offset_x, offset_y);
-	      return;
-	    }
-	  else if (target->mode_info->blit_format
-		   == GRUB_VIDEO_BLIT_FORMAT_BGR_565
-		   || target->mode_info->blit_format
-		   == GRUB_VIDEO_BLIT_FORMAT_RGB_565)
-	    {
-	      grub_video_fbblit_blend_XXX565_1bit (target, source,
-						   x, y, width, height,
-						   offset_x, offset_y);
-	      return;
-	    }
 
-	}
-
-
       /* No optimized blend operation found, use default (slow) blitter.  */
       grub_video_fbblit_blend (target, source, x, y, width, height,
 				     offset_x, offset_y);
Index: video/video.c
===================================================================
--- video/video.c	(Revision 2542)
+++ video/video.c	(Revision 2541)
@@ -181,8 +181,6 @@
 	  return GRUB_VIDEO_BLIT_FORMAT_RGB_565;
 	}
     }
-  else if (mode_info->bpp == 1)
-    return GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED;
 
   /* Backup route.  Unknown format.  */
 
Index: include/grub/fbblit.h
===================================================================
--- include/grub/fbblit.h	(Revision 2542)
+++ include/grub/fbblit.h	(Revision 2541)
@@ -131,52 +131,4 @@
 					int width, int height,
 					int offset_x, int offset_y);
 
-void
-grub_video_fbblit_replace_32bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y);
-
-void
-grub_video_fbblit_replace_24bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y);
-
-void
-grub_video_fbblit_replace_16bit_1bit (struct grub_video_fbblit_info *dst,
-				      struct grub_video_fbblit_info *src,
-				      int x, int y,
-				      int width, int height,
-				      int offset_x, int offset_y);
-
-void
-grub_video_fbblit_replace_8bit_1bit (struct grub_video_fbblit_info *dst,
-				     struct grub_video_fbblit_info *src,
-				     int x, int y,
-				     int width, int height,
-				     int offset_x, int offset_y);
-
-void
-grub_video_fbblit_blend_XXXA8888_1bit (struct grub_video_fbblit_info *dst,
-				       struct grub_video_fbblit_info *src,
-				       int x, int y,
-				       int width, int height,
-				       int offset_x, int offset_y);
-
-void
-grub_video_fbblit_blend_XXX888_1bit (struct grub_video_fbblit_info *dst,
-				       struct grub_video_fbblit_info *src,
-				       int x, int y,
-				       int width, int height,
-				       int offset_x, int offset_y);
-
-void
-grub_video_fbblit_blend_XXX565_1bit (struct grub_video_fbblit_info *dst,
-				     struct grub_video_fbblit_info *src,
-				     int x, int y,
-				     int width, int height,
-				     int offset_x, int offset_y);
 #endif /* ! GRUB_FBBLIT_HEADER */

Reply via email to