mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 03:15:00 +00:00
dm: use list_count_nodes() for counting list nodes
The linux kernel has the list_count_nodes() API functions which is used for counting nodes of a list. This has now been imported in U-Boot as part of an earlier commit. Use this function and drop the list_count_items(). Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
e464ad085e
commit
939afc80b6
5 changed files with 13 additions and 28 deletions
|
@ -3,23 +3,13 @@
|
||||||
* Copyright (c) 2013 Google, Inc
|
* Copyright (c) 2013 Google, Inc
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <vsprintf.h>
|
||||||
#include <dm/device.h>
|
#include <dm/device.h>
|
||||||
#include <dm/ofnode.h>
|
#include <dm/ofnode.h>
|
||||||
#include <dm/read.h>
|
#include <dm/read.h>
|
||||||
#include <dm/util.h>
|
#include <dm/util.h>
|
||||||
#include <linux/libfdt.h>
|
#include <linux/libfdt.h>
|
||||||
#include <vsprintf.h>
|
#include <linux/list.h>
|
||||||
|
|
||||||
int list_count_items(struct list_head *head)
|
|
||||||
{
|
|
||||||
struct list_head *node;
|
|
||||||
int count = 0;
|
|
||||||
|
|
||||||
list_for_each(node, head)
|
|
||||||
count++;
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(OF_REAL)
|
#if CONFIG_IS_ENABLED(OF_REAL)
|
||||||
int pci_get_devfn(struct udevice *dev)
|
int pci_get_devfn(struct udevice *dev)
|
||||||
|
|
|
@ -16,14 +16,6 @@ struct dm_stats;
|
||||||
|
|
||||||
struct list_head;
|
struct list_head;
|
||||||
|
|
||||||
/**
|
|
||||||
* list_count_items() - Count number of items in a list
|
|
||||||
*
|
|
||||||
* @param head: Head of list
|
|
||||||
* Return: number of items, or 0 if empty
|
|
||||||
*/
|
|
||||||
int list_count_items(struct list_head *head);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump out a tree of all devices starting @uclass
|
* Dump out a tree of all devices starting @uclass
|
||||||
*
|
*
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <dm/test.h>
|
#include <dm/test.h>
|
||||||
#include <dm/uclass-internal.h>
|
#include <dm/uclass-internal.h>
|
||||||
#include <dm/util.h>
|
#include <dm/util.h>
|
||||||
|
#include <linux/list.h>
|
||||||
#include <test/test.h>
|
#include <test/test.h>
|
||||||
#include <test/ut.h>
|
#include <test/ut.h>
|
||||||
|
|
||||||
|
@ -27,14 +28,14 @@ static int dm_test_bus_children(struct unit_test_state *uts)
|
||||||
struct uclass *uc;
|
struct uclass *uc;
|
||||||
|
|
||||||
ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
|
ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
|
||||||
ut_asserteq(num_devices, list_count_items(&uc->dev_head));
|
ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
|
||||||
|
|
||||||
/* Probe the bus, which should yield 3 more devices */
|
/* Probe the bus, which should yield 3 more devices */
|
||||||
ut_assertok(uclass_get_device(UCLASS_TEST_BUS, 0, &bus));
|
ut_assertok(uclass_get_device(UCLASS_TEST_BUS, 0, &bus));
|
||||||
num_devices += 3;
|
num_devices += 3;
|
||||||
|
|
||||||
ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
|
ut_assertok(uclass_get(UCLASS_TEST_FDT, &uc));
|
||||||
ut_asserteq(num_devices, list_count_items(&uc->dev_head));
|
ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
|
||||||
|
|
||||||
ut_assert(!dm_check_devices(uts, num_devices));
|
ut_assert(!dm_check_devices(uts, num_devices));
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <dm/util.h>
|
#include <dm/util.h>
|
||||||
#include <dm/test.h>
|
#include <dm/test.h>
|
||||||
#include <dm/uclass-internal.h>
|
#include <dm/uclass-internal.h>
|
||||||
|
#include <linux/list.h>
|
||||||
#include <test/test.h>
|
#include <test/test.h>
|
||||||
#include <test/ut.h>
|
#include <test/ut.h>
|
||||||
|
|
||||||
|
@ -123,15 +124,15 @@ static int dm_test_autobind(struct unit_test_state *uts)
|
||||||
* device with no children.
|
* device with no children.
|
||||||
*/
|
*/
|
||||||
ut_assert(uts->root);
|
ut_assert(uts->root);
|
||||||
ut_asserteq(1, list_count_items(gd->uclass_root));
|
ut_asserteq(1, list_count_nodes(gd->uclass_root));
|
||||||
ut_asserteq(0, list_count_items(&gd->dm_root->child_head));
|
ut_asserteq(0, list_count_nodes(&gd->dm_root->child_head));
|
||||||
ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
|
ut_asserteq(0, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
|
||||||
|
|
||||||
ut_assertok(dm_scan_plat(false));
|
ut_assertok(dm_scan_plat(false));
|
||||||
|
|
||||||
/* We should have our test class now at least, plus more children */
|
/* We should have our test class now at least, plus more children */
|
||||||
ut_assert(1 < list_count_items(gd->uclass_root));
|
ut_assert(1 < list_count_nodes(gd->uclass_root));
|
||||||
ut_assert(0 < list_count_items(&gd->dm_root->child_head));
|
ut_assert(0 < list_count_nodes(&gd->dm_root->child_head));
|
||||||
|
|
||||||
/* Our 3 dm_test_infox children should be bound to the test uclass */
|
/* Our 3 dm_test_infox children should be bound to the test uclass */
|
||||||
ut_asserteq(3, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
|
ut_asserteq(3, dm_testdrv_op_count[DM_TEST_OP_POST_BIND]);
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <dm/util.h>
|
#include <dm/util.h>
|
||||||
#include <dm/of_access.h>
|
#include <dm/of_access.h>
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
|
#include <linux/list.h>
|
||||||
#include <test/test.h>
|
#include <test/test.h>
|
||||||
#include <test/ut.h>
|
#include <test/ut.h>
|
||||||
|
|
||||||
|
@ -162,7 +163,7 @@ static int dm_test_fdt(struct unit_test_state *uts)
|
||||||
ut_assert(!ret);
|
ut_assert(!ret);
|
||||||
|
|
||||||
/* These are num_devices compatible root-level device tree nodes */
|
/* These are num_devices compatible root-level device tree nodes */
|
||||||
ut_asserteq(num_devices, list_count_items(&uc->dev_head));
|
ut_asserteq(num_devices, list_count_nodes(&uc->dev_head));
|
||||||
|
|
||||||
/* Each should have platform data but no private data */
|
/* Each should have platform data but no private data */
|
||||||
for (i = 0; i < num_devices; i++) {
|
for (i = 0; i < num_devices; i++) {
|
||||||
|
@ -217,7 +218,7 @@ static int dm_test_fdt_pre_reloc(struct unit_test_state *uts)
|
||||||
* one with "bootph-all" property (a-test node), and the other
|
* one with "bootph-all" property (a-test node), and the other
|
||||||
* one whose driver marked with DM_FLAG_PRE_RELOC flag (h-test node).
|
* one whose driver marked with DM_FLAG_PRE_RELOC flag (h-test node).
|
||||||
*/
|
*/
|
||||||
ut_asserteq(2, list_count_items(&uc->dev_head));
|
ut_asserteq(2, list_count_nodes(&uc->dev_head));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue