
Hi,
On Mon, 23 Apr 2012 10:47:10 +0900 Donghwa Lee dh09.lee@samsung.com wrote:
This patches support drawing 32bpp bitmap TIZEN logo in exynos fb. asm/arch/trats_logo.h data is compressed by zip and decomressed at
Did you use "gzip" to compress the trats.bmp bitmap? I suppose so, but "gunzip" can't uncompress it: $ gunzip img.gz gzip: img.gz: unexpected end of file
"gunzip -c img.gz > trats.bmp" works and I get a 520x120 32bpp bmp file. The size of your compressed array is 80681. Probably one or more bytes are missing at the end. Please check/fix this.
...
diff --git a/drivers/video/exynos_fb.c b/drivers/video/exynos_fb.c index 0eb7f58..c111855 100644 --- a/drivers/video/exynos_fb.c +++ b/drivers/video/exynos_fb.c
...
@@ -67,6 +69,38 @@ static void exynos_lcd_init(vidinfo_t *vid) exynos_fimd_lcd_init(vid); }
+static void draw_logo(void *lcdbase) +{
- int x, y;
- unsigned int in_len, width, height;
- unsigned long out_len =
(ARRAY_SIZE(trats_logo) * sizeof(*trats_logo)) + 1;
* sizeof(*trats_logo) is not needed here, it is always 1. Also this out_len variable should be named differently, src_len is a better name i think.
- void *dst = NULL;
- width = TRATS_LOGO_WIDTH;
- height = TRATS_LOGO_HEIGHT;
- x = ((panel_width - width) >> 1);
- y = ((panel_height - height) >> 1) - 5;
in your 1/2 path for common/lcd.c you are adding an #ifndef CONFIG_EXYNOS_FB #else #endif
block for exynosfb specific drawing offset calculation. The only difference is that you are using (y + height) instead of (y + height - 1). This is not needed, just set use "y = ((panel_height - height) >> 1) - 4;" here.
- in_len = width * height * 8;
Please better use "in_len = CONFIG_SYS_VIDEO_LOGO_MAX_SIZE;" here and define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE to be big enough to contain a bitmap of your max. bitmap size (i.e. 520 * 120 * 4 + space for bmp header/color table, so 300 KiB would be okay).
...
diff --git a/include/configs/trats.h b/include/configs/trats.h index 5f913ca..b326035 100644 --- a/include/configs/trats.h +++ b/include/configs/trats.h @@ -216,9 +216,11 @@ /* LCD */ #define CONFIG_EXYNOS_FB #define CONFIG_LCD +#define CONFIG_CMD_BMP #define CONFIG_FB_ADDR 0x52504000 #define CONFIG_S6E8AX0 #define CONFIG_EXYNOS_MIPI_DSIM -#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (1280 * 720 * 4) +#define CONFIG_VIDEO_BMP_GZIP +#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (500 * 120 * 4)
This should be bigger than the bitmap resolution. The bitmap file contains the bmp header and maybe a color table, so for your current bitmap define it to be 250000 bytes at least.
Thanks, Anatolij