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:
committed by
Fabio Estevam
parent
fa03ee371d
commit
0ef21dd37d
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user