video: Drop CONFIG_LCD_BMP_RLE8
[platform/kernel/u-boot.git] / common / lcd.c
index bd2f020..0898bc0 100644 (file)
@@ -347,135 +347,6 @@ static void splash_align_axis(int *axis, unsigned long panel_size,
 }
 #endif
 
-#ifdef CONFIG_LCD_BMP_RLE8
-#define BMP_RLE8_ESCAPE                0
-#define BMP_RLE8_EOL           0
-#define BMP_RLE8_EOBMP         1
-#define BMP_RLE8_DELTA         2
-
-static void draw_unencoded_bitmap(ushort **fbp, uchar *bmap, ushort *cmap,
-                                 int cnt)
-{
-       while (cnt > 0) {
-               *(*fbp)++ = cmap[*bmap++];
-               cnt--;
-       }
-}
-
-static void draw_encoded_bitmap(ushort **fbp, ushort c, int cnt)
-{
-       ushort *fb = *fbp;
-       int cnt_8copy = cnt >> 3;
-
-       cnt -= cnt_8copy << 3;
-       while (cnt_8copy > 0) {
-               *fb++ = c;
-               *fb++ = c;
-               *fb++ = c;
-               *fb++ = c;
-               *fb++ = c;
-               *fb++ = c;
-               *fb++ = c;
-               *fb++ = c;
-               cnt_8copy--;
-       }
-       while (cnt > 0) {
-               *fb++ = c;
-               cnt--;
-       }
-       *fbp = fb;
-}
-
-/*
- * Do not call this function directly, must be called from lcd_display_bitmap.
- */
-static void lcd_display_rle8_bitmap(struct bmp_image *bmp, ushort *cmap,
-                                   uchar *fb, int x_off, int y_off)
-{
-       uchar *bmap;
-       ulong width, height;
-       ulong cnt, runlen;
-       int x, y;
-       int decode = 1;
-
-       width = get_unaligned_le32(&bmp->header.width);
-       height = get_unaligned_le32(&bmp->header.height);
-       bmap = (uchar *)bmp + get_unaligned_le32(&bmp->header.data_offset);
-
-       x = 0;
-       y = height - 1;
-
-       while (decode) {
-               if (bmap[0] == BMP_RLE8_ESCAPE) {
-                       switch (bmap[1]) {
-                       case BMP_RLE8_EOL:
-                               /* end of line */
-                               bmap += 2;
-                               x = 0;
-                               y--;
-                               /* 16bpix, 2-byte per pixel, width should *2 */
-                               fb -= (width * 2 + lcd_line_length);
-                               break;
-                       case BMP_RLE8_EOBMP:
-                               /* end of bitmap */
-                               decode = 0;
-                               break;
-                       case BMP_RLE8_DELTA:
-                               /* delta run */
-                               x += bmap[2];
-                               y -= bmap[3];
-                               /* 16bpix, 2-byte per pixel, x should *2 */
-                               fb = (uchar *) (lcd_base + (y + y_off - 1)
-                                       * lcd_line_length + (x + x_off) * 2);
-                               bmap += 4;
-                               break;
-                       default:
-                               /* unencoded run */
-                               runlen = bmap[1];
-                               bmap += 2;
-                               if (y < height) {
-                                       if (x < width) {
-                                               if (x + runlen > width)
-                                                       cnt = width - x;
-                                               else
-                                                       cnt = runlen;
-                                               draw_unencoded_bitmap(
-                                                       (ushort **)&fb,
-                                                       bmap, cmap, cnt);
-                                       }
-                                       x += runlen;
-                               }
-                               bmap += runlen;
-                               if (runlen & 1)
-                                       bmap++;
-                       }
-               } else {
-                       /* encoded run */
-                       if (y < height) {
-                               runlen = bmap[0];
-                               if (x < width) {
-                                       /* aggregate the same code */
-                                       while (bmap[0] == 0xff &&
-                                              bmap[2] != BMP_RLE8_ESCAPE &&
-                                              bmap[1] == bmap[3]) {
-                                               runlen += bmap[2];
-                                               bmap += 2;
-                                       }
-                                       if (x + runlen > width)
-                                               cnt = width - x;
-                                       else
-                                               cnt = runlen;
-                                       draw_encoded_bitmap((ushort **)&fb,
-                                               cmap[bmap[1]], cnt);
-                               }
-                               x += runlen;
-                       }
-                       bmap += 2;
-               }
-       }
-}
-#endif
-
 __weak void fb_put_byte(uchar **fb, uchar **from)
 {
        *(*fb)++ = *(*from)++;
@@ -581,19 +452,6 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
        case 1:
        case 8: {
                cmap_base = configuration_get_cmap();
-#ifdef CONFIG_LCD_BMP_RLE8
-               u32 compression = get_unaligned_le32(&bmp->header.compression);
-               debug("compressed %d %d\n", compression, BMP_BI_RLE8);
-               if (compression == BMP_BI_RLE8) {
-                       if (bpix != 16) {
-                               /* TODO implement render code for bpix != 16 */
-                               printf("Error: only support 16 bpix");
-                               return 1;
-                       }
-                       lcd_display_rle8_bitmap(bmp, cmap_base, fb, x, y);
-                       break;
-               }
-#endif
 
                if (bpix != 16)
                        byte_width = width;