[PATCH 63/71] extension: Refactor to allow non-command usage

Simon Glass sjg at chromium.org
Wed Dec 7 09:51:29 CET 2022


The current extension code is designed to be used from commands. We want
to add a boot driver which uses it. To help with this, split the code into
the command processing and a function which actually does the scan.

Really the extension code should be in common/ or use driver model, but
this is a start.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 cmd/extension_board.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/cmd/extension_board.c b/cmd/extension_board.c
index f94abd612d5..f7685d47b8b 100644
--- a/cmd/extension_board.c
+++ b/cmd/extension_board.c
@@ -80,8 +80,7 @@ static int do_extension_list(struct cmd_tbl *cmdtp, int flag,
 	return CMD_RET_SUCCESS;
 }
 
-static int do_extension_scan(struct cmd_tbl *cmdtp, int flag,
-			     int argc, char *const argv[])
+static int extension_scan(bool show)
 {
 	struct extension *extension, *next;
 	int extension_num;
@@ -91,12 +90,23 @@ static int do_extension_scan(struct cmd_tbl *cmdtp, int flag,
 		free(extension);
 	}
 	extension_num = extension_board_scan(&extension_list);
+	if (show && extension_num >= 0)
+		printf("Found %d extension board(s).\n", extension_num);
+
+	/* either the number of extensions, or -ve for error */
+	return extension_num;
+}
+
 
+static int do_extension_scan(struct cmd_tbl *cmdtp, int flag,
+			     int argc, char *const argv[])
+{
+	int extension_num;
+
+	extension_num = extension_scan(true);
 	if (extension_num < 0)
 		return CMD_RET_FAILURE;
 
-	printf("Found %d extension board(s).\n", extension_num);
-
 	return CMD_RET_SUCCESS;
 }
 
-- 
2.39.0.rc0.267.gcb52ba06e7-goog



More information about the U-Boot mailing list