summaryrefslogtreecommitdiff
path: root/packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch
diff options
context:
space:
mode:
authorLeon Woestenberg <leon.woestenberg@gmail.com>2008-05-01 12:53:25 +0000
committerLeon Woestenberg <leon.woestenberg@gmail.com>2008-05-01 12:53:25 +0000
commit20face5dc2bfe22d6fb747c36ebfc70cad854fa4 (patch)
treee12a21f97b27b2388bba1ad2372da04f6282b241 /packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch
parent1c9196a130c2a4f78e89a871deebb3cd9ac60cc8 (diff)
u-boot-1.1.4: Added additional patches from Atmel AT32STK1000 BSP 2.0.0 CD, mostly LCD/splash support.
u-boot-1.1.4/at32stk1000/ap7000-add-spi-device-and-lcdc-base-address.patch | 112 + u-boot-1.1.4/at32stk1000/at32ap-add-define-for-sdram-test.patch | 117 + u-boot-1.1.4/at32stk1000/at32ap-add-framebuffer-address.patch | 11 u-boot-1.1.4/at32stk1000/at32ap-add-spi-initcalls.patch | 16 u-boot-1.1.4/at32stk1000/at32ap-add-system-manager-header-file.patch | 252 ++ u-boot-1.1.4/at32stk1000/atstk1000-add-lcd-and-spi-to-config.patch | 124 + u-boot-1.1.4/at32stk1000/atstk1000-ltv350qv-display-support.patch | 163 + u-boot-1.1.4/at32stk1000/atstk1000-spi-support.patch | 98 u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch | 120 + u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch | 90 u-boot-1.1.4/at32stk1000/fix-mmc-data-timeout.patch | 101 u-boot-1.1.4/at32stk1000/lcd-add-24-bpp-support-and-atmel-lcdc-support.patch | 670 ++++++ u-boot-1.1.4/at32stk1000/lcdc-driver-for-avr32.patch | 755 +++++++ u-boot-1.1.4/at32stk1000/libavr32-add-spi-and-lcd-board-support.patch | 61 u-boot-1.1.4/at32stk1000/spi-driver-for-avr32.patch | 1026 ++++++++++ u-boot_1.1.4.bb | 48
Diffstat (limited to 'packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch')
-rw-r--r--packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch b/packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch
new file mode 100644
index 0000000000..47da73ef5e
--- /dev/null
+++ b/packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch
@@ -0,0 +1,90 @@
+Index: u-boot-orig/common/cmd_bmp.c
+===================================================================
+--- u-boot-orig.orig/common/cmd_bmp.c 2007-01-05 14:50:55.000000000 +0100
++++ u-boot-orig/common/cmd_bmp.c 2007-01-05 15:59:21.000000000 +0100
+@@ -176,13 +176,83 @@
+ */
+ static int bmp_display(ulong addr, int x, int y)
+ {
++ int ret;
++#ifdef CONFIG_VIDEO_BMP_GZIP
++ bmp_image_t *bmp = (bmp_image_t *)addr;
++ unsigned char *dst = NULL;
++ ulong len;
++
++ if (!((bmp->header.signature[0]=='B') &&
++ (bmp->header.signature[1]=='M'))) {
++
++ /*
++ * Decompress bmp image
++ */
++ len = CFG_VIDEO_LOGO_MAX_SIZE;
++ dst = malloc(CFG_VIDEO_LOGO_MAX_SIZE);
++ if (dst == NULL) {
++ printf("Error: malloc in gunzip failed!\n");
++ return(1);
++ }
++ if (gunzip(dst, CFG_VIDEO_LOGO_MAX_SIZE, (uchar *)addr, &len) != 0) {
++ free(dst);
++ printf("There is no valid bmp file at the given address\n");
++ return(1);
++ }
++ if (len == CFG_VIDEO_LOGO_MAX_SIZE) {
++ printf("Image could be truncated "
++ "(increase CFG_VIDEO_LOGO_MAX_SIZE)!\n");
++ }
++
++ /*
++ * Set addr to decompressed image
++ */
++ bmp = (bmp_image_t *)dst;
++
++ /*
++ * Check for bmp mark 'BM'
++ */
++ if (!((bmp->header.signature[0] == 'B') &&
++ (bmp->header.signature[1] == 'M'))) {
++ printf("There is no valid bmp file at the given address\n");
++ free(dst);
++ return(1);
++ }
++ }
++
++ if (dst) {
++ addr = (ulong)dst;
++ }
++#endif /* CONFIG_VIDEO_BMP_GZIP */
++
+ #if defined(CONFIG_LCD)
+ extern int lcd_display_bitmap (ulong, int, int);
+
+- return (lcd_display_bitmap (addr, x, y));
++ ret = lcd_display_bitmap (addr, x, y);
++ if (ret) {
++#ifdef CONFIG_VIDEO_BMP_GZIP
++ free(dst);
++#endif
++ return ret;
++ }
++#ifdef CONFIG_VIDEO_BMP_GZIP
++ free(dst);
++#endif
++ return 0;
++
+ #elif defined(CONFIG_VIDEO)
+ extern int video_display_bitmap (ulong, int, int);
+- return (video_display_bitmap (addr, x, y));
++ ret = video_display_bitmap (addr, x, y);
++ if (ret) {
++#ifdef CONFIG_VIDEO_BMP_GZIP
++ free(dst);
++#endif
++ return ret;
++ }
++#ifdef CONFIG_VIDEO_BMP_GZIP
++ free(dst);
++#endif
++ return 0;
+ #else
+ # error bmp_display() requires CONFIG_LCD or CONFIG_VIDEO
+ #endif