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;
}
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;
}