On Mon, Nov 18, 2013 at 3:00 PM, Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > I'm not against moving the gpio-rcar initialization to postcore or subsys > initcall, but in that case I believe we should standardize (or at least try > to) this across the GPIO drivers. We currently have > > $ cat drivers/gpio/gpio-*.c | grep _initcall | grep '^[a-z]' | sed 's/(.*//' | > sort | uniq -c > 2 arch_initcall > 1 core_initcall > 1 device_initcall > 1 late_initcall > 11 postcore_initcall > 2 pure_initcall > 31 subsys_initcall > > $ cat drivers/gpio/gpio-*.c | grep 'module_.*_driver' | sed 's/(.*//' | sort | > uniq -c > 3 module_i2c_driver > 4 module_pci_driver > 23 module_platform_driver > 1 module_spi_driver > > Linus, do you have any guidelines on this ? The general guideline, as everybody should be aware ;-) is that we should always use module_init(), i.e. device_initcall() and let deferred probe handle any dependencies. The only exception would be things like timers and interrupt controllers... Usually not relying on deferred probe is a sign of bugs in the deferral probe path. I know "my" drivers have this problem too, I would prefer that we try to fix the root issue instead of trying to shovel initcalls around. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html