Am 14.05.2014 21:24, schrieb Alexander Holler: > Am 14.05.2014 21:06, schrieb Rob Herring: >> I still have not seen an example of A depends on B, deferred probe >> fails because of ? and here is the code for A that works around the >> problem. >> >>> Anyway, this feature is totally independ of the deferred probe stuff and >>> both can friendly live together. >> >> Yes, except then we get to maintain both. And just in case someone still hasn't realized what the goal of a deterministic initialization order is, have a look at this snippet from arch/arm/mach-omap2/gpio.c: -------- /* * gpio_init needs to be done before * machine_init functions access gpio APIs. * Hence gpio_init is a omap_postcore_initcall. */ static int __init omap2_gpio_init(void) { /* If dtb is there, the devices will be created dynamically */ if (of_have_populated_dt()) return -ENODEV; return omap_hwmod_for_each_by_class("gpio", omap2_gpio_dev_init, NULL); } omap_postcore_initcall(omap2_gpio_init); -------- (Sorry to the OMAP guys, it isn't there fault that it has to look like this.) But this is ecactly what should be avoided and why the kernel is in need of a deterministic, easy to setup, initialization order. And deferred probes are in now way a help to reach that target, in fact they even support such stuff. Does anybody outside the OMAP crew do understand what that piece of code does? The answer is pretty likely no. Again sorry to the OMAP guys, I'm pretty sure that code was born out of necessity because no other mechanism is available to get things in order. Regards, Alexander Holler -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html