]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
video: Drop CONFIG_LCD_BMP_RLE8
authorSimon Glass <sjg@chromium.org>
Sun, 14 Nov 2021 03:21:56 +0000 (20:21 -0700)
committerAnatolij Gustschin <agust@denx.de>
Mon, 28 Mar 2022 18:30:33 +0000 (20:30 +0200)
This is not defined by any board. Even sandbox doesn't actually use
it since it has migrated to DM_VIDEO.

Drop this option. Remove the dead code also, for completeness, even
though the whole lcd.c file will be dropped soon.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
README
common/lcd.c

diff --git a/README b/README
index 8b05bfb53a11b013f56f6c556ddd75a71d761e7c..3322f063777fd9f092e8de413c945832eba257a1 100644 (file)
--- a/README
+++ b/README
@@ -1044,10 +1044,6 @@ The following options need to be configured:
                If CONFIG_LCD_ROTATION is not defined, the console will be
                initialized with 0degree rotation.
 
-               CONFIG_LCD_BMP_RLE8
-
-               Support drawing of RLE8-compressed bitmaps on the LCD.
-
 - MII/PHY support:
                CONFIG_PHY_CLOCK_FREQ (ppc4xx)
 
index bd2f020d5dac90d4a45c9a1c1c12d47ae0302ec0..0898bc025d679758eb851372e35edca58f3582f4 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;