On Thu, Sep 07, 2017 at 11:13:00AM +0800, Baolin Wang wrote: > >> +static int __init sprd_adi_init(void) > >> +{ > >> + return platform_driver_register(&sprd_adi_driver); > >> +} > >> +subsys_initcall(sprd_adi_init); > > Why is this subsys_initcall() and not module_platform_driver()? > Since ADI is one very fundamental driver for our SoC, many drivers > such as regulator need depend on ADI, and regulator need to regulate > core voltage as earlier as possible. That applies to huge numbers of systems - you should still just use regular init ordering in mainline, there are efforts to make things better there (look at Viresh's dependency stuff) so hopefully things will improve in the future and in the meantime the cost of probe deferral isn't *that* great and it's less fiddly than tweaking ordering. Practically speaking init ordering stuff can always be added in vendor kernels in the meantime.