dm: core: Allow iterating devices without uclass_get()
At present we have uclass_foreach_dev() which requires that uclass_get() be called beforehand to find the uclass. This is good if we suspect that that function might fail, but often we know that the uclass is available. Add a new helper which does this uclass_get() automatically, so that only the uclass ID is needed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -448,6 +448,27 @@ static int dm_test_first_next_device(struct unit_test_state *uts)
|
||||
}
|
||||
DM_TEST(dm_test_first_next_device, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
|
||||
|
||||
/* Test iteration through devices in a uclass */
|
||||
static int dm_test_uclass_foreach(struct unit_test_state *uts)
|
||||
{
|
||||
struct udevice *dev;
|
||||
struct uclass *uc;
|
||||
int count;
|
||||
|
||||
count = 0;
|
||||
uclass_id_foreach_dev(UCLASS_TEST_FDT, dev, uc)
|
||||
count++;
|
||||
ut_asserteq(8, count);
|
||||
|
||||
count = 0;
|
||||
uclass_foreach_dev(dev, uc)
|
||||
count++;
|
||||
ut_asserteq(8, count);
|
||||
|
||||
return 0;
|
||||
}
|
||||
DM_TEST(dm_test_uclass_foreach, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
|
||||
|
||||
/**
|
||||
* check_devices() - Check return values and pointers
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user