To enable splash screen at spl, need to compile cmd/bmp.c which also
includes bmp commands, since SPL can't have commands split bmp.c into
common/bmp.c which includes all bmp functions and cmd/bmp_cmd contains
bmp commands.

Add delclaration for bmp_info in video.h.

Signed-off-by: Nikhil M Jain <n-ja...@ti.com>
---
V4:
- No change

V3 (patch introduced):
- Split bmp functions and commands

 cmd/bmp_cmd.c         |  98 +++++++++++++++++++++++++++++++++++++++
 {cmd => common}/bmp.c | 104 +-----------------------------------------
 include/video.h       |   7 +++
 3 files changed, 106 insertions(+), 103 deletions(-)
 create mode 100644 cmd/bmp_cmd.c
 rename {cmd => common}/bmp.c (62%)

diff --git a/cmd/bmp_cmd.c b/cmd/bmp_cmd.c
new file mode 100644
index 0000000000..735790fda7
--- /dev/null
+++ b/cmd/bmp_cmd.c
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2002
+ * Detlev Zundel, DENX Software Engineering, d...@denx.de.
+ */
+
+/*
+ * BMP handling routines
+ */
+
+#include <common.h>
+#include <bmp_layout.h>
+#include <command.h>
+#include <image.h>
+#include <mapmem.h>
+#include <splash.h>
+#include <video.h>
+#include <stdlib.h>
+
+static int do_bmp_info(struct cmd_tbl *cmdtp, int flag, int argc,
+                      char *const argv[])
+{
+       ulong addr;
+
+       switch (argc) {
+       case 1:         /* use image_load_addr as default address */
+               addr = image_load_addr;
+               break;
+       case 2:         /* use argument */
+               addr = hextoul(argv[1], NULL);
+               break;
+       default:
+               return CMD_RET_USAGE;
+       }
+
+       return (bmp_info(addr));
+}
+
+static int do_bmp_display(struct cmd_tbl *cmdtp, int flag, int argc,
+                         char *const argv[])
+{
+       ulong addr;
+       int x = 0, y = 0;
+
+       splash_get_pos(&x, &y);
+
+       switch (argc) {
+       case 1:         /* use image_load_addr as default address */
+               addr = image_load_addr;
+               break;
+       case 2:         /* use argument */
+               addr = hextoul(argv[1], NULL);
+               break;
+       case 4:
+               addr = hextoul(argv[1], NULL);
+               if (!strcmp(argv[2], "m"))
+                       x = BMP_ALIGN_CENTER;
+               else
+                       x = dectoul(argv[2], NULL);
+               if (!strcmp(argv[3], "m"))
+                       y = BMP_ALIGN_CENTER;
+               else
+                       y = dectoul(argv[3], NULL);
+               break;
+       default:
+               return CMD_RET_USAGE;
+       }
+
+       return (bmp_display(addr, x, y));
+}
+
+static struct cmd_tbl cmd_bmp_sub[] = {
+       U_BOOT_CMD_MKENT(info, 3, 0, do_bmp_info, "", ""),
+       U_BOOT_CMD_MKENT(display, 5, 0, do_bmp_display, "", ""),
+};
+
+static int do_bmp(struct cmd_tbl *cmdtp, int flag, int argc, char *const 
argv[])
+{
+       struct cmd_tbl *c;
+
+       /* Strip off leading 'bmp' command argument */
+       argc--;
+       argv++;
+
+       c = find_cmd_tbl(argv[0], &cmd_bmp_sub[0], ARRAY_SIZE(cmd_bmp_sub));
+
+       if (c)
+               return  c->cmd(cmdtp, flag, argc, argv);
+       else
+               return CMD_RET_USAGE;
+}
+
+U_BOOT_CMD(
+       bmp,    5,      1,      do_bmp,
+       "manipulate BMP image data",
+       "info <imageAddr>          - display image info\n"
+       "bmp display <imageAddr> [x y] - display image at x,y"
+);
diff --git a/cmd/bmp.c b/common/bmp.c
similarity index 62%
rename from cmd/bmp.c
rename to common/bmp.c
index 46d0d916e8..540d06e63f 100644
--- a/cmd/bmp.c
+++ b/common/bmp.c
@@ -13,7 +13,6 @@
 #include <command.h>
 #include <dm.h>
 #include <gzip.h>
-#include <image.h>
 #include <log.h>
 #include <malloc.h>
 #include <mapmem.h>
@@ -21,8 +20,6 @@
 #include <video.h>
 #include <asm/byteorder.h>
 
-static int bmp_info (ulong addr);
-
 /*
  * Allocate and decompress a BMP image using gunzip().
  *
@@ -88,62 +85,6 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned 
long *lenp,
 }
 #endif
 
-static int do_bmp_info(struct cmd_tbl *cmdtp, int flag, int argc,
-                      char *const argv[])
-{
-       ulong addr;
-
-       switch (argc) {
-       case 1:         /* use image_load_addr as default address */
-               addr = image_load_addr;
-               break;
-       case 2:         /* use argument */
-               addr = hextoul(argv[1], NULL);
-               break;
-       default:
-               return CMD_RET_USAGE;
-       }
-
-       return (bmp_info(addr));
-}
-
-static int do_bmp_display(struct cmd_tbl *cmdtp, int flag, int argc,
-                         char *const argv[])
-{
-       ulong addr;
-       int x = 0, y = 0;
-
-       splash_get_pos(&x, &y);
-
-       switch (argc) {
-       case 1:         /* use image_load_addr as default address */
-               addr = image_load_addr;
-               break;
-       case 2:         /* use argument */
-               addr = hextoul(argv[1], NULL);
-               break;
-       case 4:
-               addr = hextoul(argv[1], NULL);
-               if (!strcmp(argv[2], "m"))
-                       x = BMP_ALIGN_CENTER;
-               else
-                       x = dectoul(argv[2], NULL);
-               if (!strcmp(argv[3], "m"))
-                       y = BMP_ALIGN_CENTER;
-               else
-                       y = dectoul(argv[3], NULL);
-               break;
-       default:
-               return CMD_RET_USAGE;
-       }
-
-        return (bmp_display(addr, x, y));
-}
-
-static struct cmd_tbl cmd_bmp_sub[] = {
-       U_BOOT_CMD_MKENT(info, 3, 0, do_bmp_info, "", ""),
-       U_BOOT_CMD_MKENT(display, 5, 0, do_bmp_display, "", ""),
-};
 
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
 void bmp_reloc(void) {
@@ -151,50 +92,7 @@ void bmp_reloc(void) {
 }
 #endif
 
-/*
- * Subroutine:  do_bmp
- *
- * Description: Handler for 'bmp' command..
- *
- * Inputs:     argv[1] contains the subcommand
- *
- * Return:      None
- *
- */
-static int do_bmp(struct cmd_tbl *cmdtp, int flag, int argc, char *const 
argv[])
-{
-       struct cmd_tbl *c;
-
-       /* Strip off leading 'bmp' command argument */
-       argc--;
-       argv++;
-
-       c = find_cmd_tbl(argv[0], &cmd_bmp_sub[0], ARRAY_SIZE(cmd_bmp_sub));
-
-       if (c)
-               return  c->cmd(cmdtp, flag, argc, argv);
-       else
-               return CMD_RET_USAGE;
-}
-
-U_BOOT_CMD(
-       bmp,    5,      1,      do_bmp,
-       "manipulate BMP image data",
-       "info <imageAddr>          - display image info\n"
-       "bmp display <imageAddr> [x y] - display image at x,y"
-);
-
-/*
- * Subroutine:  bmp_info
- *
- * Description: Show information about bmp file in memory
- *
- * Inputs:     addr            address of the bmp file
- *
- * Return:      None
- *
- */
-static int bmp_info(ulong addr)
+int bmp_info(ulong addr)
 {
        struct bmp_image *bmp = (struct bmp_image *)map_sysmem(addr, 0);
        void *bmp_alloc_addr = NULL;
diff --git a/include/video.h b/include/video.h
index 3f67a93bc9..4b7e866c65 100644
--- a/include/video.h
+++ b/include/video.h
@@ -355,4 +355,11 @@ void *video_get_u_boot_logo(void);
  */
 int bmp_display(ulong addr, int x, int y);
 
+/*
+ * bmp_info() - Show information about bmp file
+ *
+ * @addr: address of bmp file
+ */
+int bmp_info(ulong addr);
+
 #endif
-- 
2.34.1

Reply via email to