diff options
Diffstat (limited to 'common/cmd_bmp.c')
| -rw-r--r-- | common/cmd_bmp.c | 28 | 
1 files changed, 20 insertions, 8 deletions
| diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c index 6dd60709e..c1d4c0b90 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) */ |