sysinfo: add sysinfo_get_and_detect() helper

sysinfo_detect() is commonly called after sysinfo_get(). Make the API a
bit more convenient to use by introducing a helper.

Signed-off-by: Nora Schiffer <nora.schiffer@ew.tq-group.com>
Signed-off-by: Alexander Feilke <alexander.feilke@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Nora Schiffer
2026-06-05 12:56:32 -03:00
committed by Fabio Estevam
parent fa03ee371d
commit 0ef21dd37d
3 changed files with 43 additions and 0 deletions
+10
View File
@@ -42,6 +42,16 @@ int sysinfo_detect(struct udevice *dev)
return ret;
}
int sysinfo_get_and_detect(struct udevice **devp)
{
int ret = sysinfo_get(devp);
if (!ret)
ret = sysinfo_detect(*devp);
return ret;
}
int sysinfo_get_fit_loadable(struct udevice *dev, int index, const char *type,
const char **strp)
{
+17
View File
@@ -373,6 +373,18 @@ int sysinfo_get_data_by_index(struct udevice *dev, int id, int index,
*/
int sysinfo_get(struct udevice **devp);
/**
* sysinfo_get_and_detect() - Get the sysinfo device and detect it.
*
* @devp: Pointer to structure to receive the sysinfo device.
*
* This is a convenience wrapper around sysinfo_get() followed by
* sysinfo_detect()
*
* Return: 0 if OK, -ve on error.
*/
int sysinfo_get_and_detect(struct udevice **devp);
/**
* sysinfo_get_fit_loadable - Get the name of an image to load from FIT
* This function can be used to provide the image names based on runtime
@@ -438,6 +450,11 @@ static inline int sysinfo_get(struct udevice **devp)
return -ENOSYS;
}
static inline int sysinfo_get_and_detect(struct udevice **devp)
{
return -ENOSYS;
}
static inline int sysinfo_get_fit_loadable(struct udevice *dev, int index,
const char *type, const char **strp)
{
+16
View File
@@ -66,3 +66,19 @@ static int dm_test_sysinfo(struct unit_test_state *uts)
return 0;
}
DM_TEST(dm_test_sysinfo, UTF_SCAN_PDATA | UTF_SCAN_FDT);
static int dm_test_sysinfo_get_and_detect(struct unit_test_state *uts)
{
struct udevice *sysinfo;
bool called_detect = false;
ut_assertok(sysinfo_get_and_detect(&sysinfo));
ut_assert(sysinfo);
ut_assertok(sysinfo_get_bool(sysinfo, BOOL_CALLED_DETECT,
&called_detect));
ut_assert(called_detect);
return 0;
}
DM_TEST(dm_test_sysinfo_get_and_detect, UTF_SCAN_PDATA | UTF_SCAN_FDT);