From e4ffc1443d23d57babde8413f53e001e84610c4f Mon Sep 17 00:00:00 2001 From: David Gibson Date: Fri, 7 Dec 2007 14:06:11 +1100 Subject: [PATCH] dtc: Convert check for obsolete /chosen property This converts the test for the obsolete "interrupt-controller" property in /chosen to the new framework. That was the only thing left in the old-style check_chosen() function, so that function is removed, too. Signed-off-by: David Gibson --- checks.c | 40 +++++++++---------- .../obsolete-chosen-interrupt-controller.dts | 13 ++++++ tests/run_tests.sh | 1 + 3 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 tests/obsolete-chosen-interrupt-controller.dts diff --git a/checks.c b/checks.c index e27ab30..6325ee9 100644 --- a/checks.c +++ b/checks.c @@ -476,6 +476,23 @@ static void check_avoid_default_addr_size(struct check *c, struct node *dt, } NODE_CHECK(avoid_default_addr_size, NULL, WARN, &addr_size_cells); +static void check_obsolete_chosen_interrupt_controller(struct check *c, + struct node *dt) +{ + struct node *chosen; + struct property *prop; + + chosen = get_node_by_path(dt, "/chosen"); + if (!chosen) + return; + + prop = get_property(chosen, "interrupt-controller"); + if (prop) + FAIL(c, "/chosen has obsolete \"interrupt-controller\" " + "property"); +} +TREE_CHECK(obsolete_chosen_interrupt_controller, NULL, WARN); + static struct check *check_table[] = { &duplicate_node_names, &duplicate_property_names, &name_is_string, &name_properties, @@ -488,6 +505,7 @@ static struct check *check_table[] = { &addr_size_cells, ®_format, &ranges_format, &avoid_default_addr_size, + &obsolete_chosen_interrupt_controller, }; int check_semantics(struct node *dt, int outversion, int boot_cpuid_phys); @@ -715,27 +733,6 @@ static int check_memory(struct node *root) return ok; } -static int check_chosen(struct node *root) -{ - struct node *chosen; - struct property *prop; - int ok = 1; - - chosen = get_subnode(root, "chosen"); - if (!chosen) - return ok; - - /* give warning for obsolete interrupt-controller property */ - do { - if ((prop = get_property(chosen, "interrupt-controller")) != NULL) { - WARNMSG("%s has obsolete \"%s\" property\n", - chosen->fullpath, "interrupt-controller"); - } - } while (0); - - return ok; -} - int check_semantics(struct node *dt, int outversion, int boot_cpuid_phys) { int ok = 1; @@ -743,7 +740,6 @@ int check_semantics(struct node *dt, int outversion, int boot_cpuid_phys) ok = ok && check_root(dt); ok = ok && check_cpus(dt, outversion, boot_cpuid_phys); ok = ok && check_memory(dt); - ok = ok && check_chosen(dt); if (! ok) return 0; diff --git a/tests/obsolete-chosen-interrupt-controller.dts b/tests/obsolete-chosen-interrupt-controller.dts new file mode 100644 index 0000000..36dd6e8 --- /dev/null +++ b/tests/obsolete-chosen-interrupt-controller.dts @@ -0,0 +1,13 @@ +/dts-v1/; + +/ { + #address-cells = <1>; + #size-cells = <1>; + PIC: pic@0 { + reg = <0x0 0x10>; + interrupt-controller; + }; + chosen { + interrupt-controller = <&PIC>; + }; +}; diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 2ded0e7..83e8d62 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -172,6 +172,7 @@ dtc_tests () { run_test dtc-checkfails.sh reg_format ranges_format -- -I dts -O dtb bad-reg-ranges.dts run_test dtc-checkfails.sh ranges_format -- -I dts -O dtb bad-empty-ranges.dts run_test dtc-checkfails.sh avoid_default_addr_size -- -I dts -O dtb default-addr-size.dts + run_test dtc-checkfails.sh obsolete_chosen_interrupt_controller -- -I dts -O dtb obsolete-chosen-interrupt-controller.dts } while getopts "vt:m" ARG ; do