mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-27 07:51:38 +00:00
video: Drop CONFIG_LCD_BMP_RLE8
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>
This commit is contained in:
parent
39161e0880
commit
60cc409448
2 changed files with 0 additions and 146 deletions
4
README
4
README
|
@ -1044,10 +1044,6 @@ The following options need to be configured:
|
||||||
If CONFIG_LCD_ROTATION is not defined, the console will be
|
If CONFIG_LCD_ROTATION is not defined, the console will be
|
||||||
initialized with 0degree rotation.
|
initialized with 0degree rotation.
|
||||||
|
|
||||||
CONFIG_LCD_BMP_RLE8
|
|
||||||
|
|
||||||
Support drawing of RLE8-compressed bitmaps on the LCD.
|
|
||||||
|
|
||||||
- MII/PHY support:
|
- MII/PHY support:
|
||||||
CONFIG_PHY_CLOCK_FREQ (ppc4xx)
|
CONFIG_PHY_CLOCK_FREQ (ppc4xx)
|
||||||
|
|
||||||
|
|
142
common/lcd.c
142
common/lcd.c
|
@ -347,135 +347,6 @@ static void splash_align_axis(int *axis, unsigned long panel_size,
|
||||||
}
|
}
|
||||||
#endif
|
#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)
|
__weak void fb_put_byte(uchar **fb, uchar **from)
|
||||||
{
|
{
|
||||||
*(*fb)++ = *(*from)++;
|
*(*fb)++ = *(*from)++;
|
||||||
|
@ -581,19 +452,6 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
|
||||||
case 1:
|
case 1:
|
||||||
case 8: {
|
case 8: {
|
||||||
cmap_base = configuration_get_cmap();
|
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)
|
if (bpix != 16)
|
||||||
byte_width = width;
|
byte_width = width;
|
||||||
|
|
Loading…
Add table
Reference in a new issue