Hi Rob, Today's linux-next merge of the dt-rh tree got a conflict in drivers/of/selftest.c between commit 82c0f5897a87 ("of: selftest: add deferred probe interrupt test") from Linus' tree and commit ae7c987bc3a7 ("of/selftest: add testcase for nodes with same name and address") from the dt-rh tree. I fixed it up (I think - see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc drivers/of/selftest.c index fe70b86bcffb,c93cb4ae5a21..000000000000 --- a/drivers/of/selftest.c +++ b/drivers/of/selftest.c @@@ -430,32 -430,23 +430,49 @@@ static void __init of_selftest_match_no static void __init of_selftest_platform_populate(void) { - struct device_node *np, *child; + int irq; + struct device_node *np; + struct platform_device *pdev; ++ struct device_node *child; + int rc; + struct of_device_id match[] = { + { .compatible = "test-device", }, + {} + }; + np = of_find_node_by_path("/testcase-data"); + of_platform_populate(np, of_default_bus_match_table, NULL, NULL); + + /* Test that a missing irq domain returns -EPROBE_DEFER */ + np = of_find_node_by_path("/testcase-data/testcase-device1"); + pdev = of_find_device_by_node(np); + if (!pdev) + selftest(0, "device 1 creation failed\n"); + irq = platform_get_irq(pdev, 0); + if (irq != -EPROBE_DEFER) + selftest(0, "device deferred probe failed - %d\n", irq); + + /* Test that a parsing failure does not return -EPROBE_DEFER */ + np = of_find_node_by_path("/testcase-data/testcase-device2"); + pdev = of_find_device_by_node(np); + if (!pdev) + selftest(0, "device 2 creation failed\n"); + irq = platform_get_irq(pdev, 0); + if (irq >= 0 || irq == -EPROBE_DEFER) + selftest(0, "device parsing error failed - %d\n", irq); + + selftest(1, "passed"); ++ + np = of_find_node_by_path("/testcase-data/platform-tests"); + if (!np) { + pr_err("No testcase data in device tree\n"); + return; + } + + for_each_child_of_node(np, child) { + rc = of_platform_populate(child, match, NULL, NULL); + selftest(!rc, "Could not create device for node '%s'\n", child->name); + } } static int __init of_selftest(void)
Attachment:
signature.asc
Description: PGP signature