extension: Refactor to allow non-command usage

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@chromium.org>
This commit is contained in:
Simon Glass 2023-01-17 10:48:12 -07:00 committed by Tom Rini
parent 43e89a3069
commit 35ce14617e

View file

@ -80,8 +80,7 @@ static int do_extension_list(struct cmd_tbl *cmdtp, int flag,
return CMD_RET_SUCCESS; return CMD_RET_SUCCESS;
} }
static int do_extension_scan(struct cmd_tbl *cmdtp, int flag, static int extension_scan(bool show)
int argc, char *const argv[])
{ {
struct extension *extension, *next; struct extension *extension, *next;
int extension_num; int extension_num;
@ -91,12 +90,23 @@ static int do_extension_scan(struct cmd_tbl *cmdtp, int flag,
free(extension); free(extension);
} }
extension_num = extension_board_scan(&extension_list); 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) if (extension_num < 0)
return CMD_RET_FAILURE; return CMD_RET_FAILURE;
printf("Found %d extension board(s).\n", extension_num);
return CMD_RET_SUCCESS; return CMD_RET_SUCCESS;
} }