summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/cmd_bmp.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c
index 6dd6070..c1d4c0b 100644
--- a/common/cmd_bmp.c
+++ b/common/cmd_bmp.c
@@ -32,7 +32,7 @@
#if (CONFIG_COMMANDS & CFG_CMD_BMP)
static int bmp_info (ulong addr);
-static int bmp_display (ulong addr);
+static int bmp_display (ulong addr, int x, int y);
/*
* Subroutine: do_bmp
@@ -47,6 +47,7 @@ static int bmp_display (ulong addr);
int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
ulong addr;
+ int x = 0, y = 0;
switch (argc) {
case 2: /* use load_addr as default address */
@@ -55,6 +56,11 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
case 3: /* use argument */
addr = simple_strtoul(argv[2], NULL, 16);
break;
+ case 5:
+ addr = simple_strtoul(argv[2], NULL, 16);
+ x = simple_strtoul(argv[3], NULL, 10);
+ y = simple_strtoul(argv[4], NULL, 10);
+ break;
default:
printf ("Usage:\n%s\n", cmdtp->usage);
return 1;
@@ -66,7 +72,7 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (strncmp(argv[1],"info",1) == 0) {
return (bmp_info(addr));
} else if (strncmp(argv[1],"display",1) == 0) {
- return (bmp_display(addr));
+ return (bmp_display(addr, x, y));
} else {
printf ("Usage:\n%s\n", cmdtp->usage);
return 1;
@@ -74,10 +80,10 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
U_BOOT_CMD(
- bmp, 3, 1, do_bmp,
+ bmp, 5, 1, do_bmp,
"bmp - manipulate BMP image data\n",
- "info <imageAddr> - display image info\n"
- "bmp display <imageAddr> - display image\n"
+ "info <imageAddr> - display image info\n"
+ "bmp display <imageAddr> [x y] - display image at x,y\n"
);
/*
@@ -115,11 +121,17 @@ static int bmp_info(ulong addr)
* Return: None
*
*/
-static int bmp_display(ulong addr)
+static int bmp_display(ulong addr, int x, int y)
{
- extern int lcd_display_bitmap (ulong);
+#ifdef CONFIG_LCD
+ extern int lcd_display_bitmap (ulong, int, int);
- return (lcd_display_bitmap (addr));
+ return (lcd_display_bitmap (addr, x, y));
+#endif
+#ifdef CONFIG_VIDEO
+ extern int video_display_bitmap (ulong, int, int);
+ return (video_display_bitmap (addr, x, y));
+#endif
}
#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) */