On Tue, Jun 01, 2021 at 05:56:40PM +0200, Daniel Vetter wrote:
On Fri, May 28, 2021 at 04:26:07PM +0800, Huacai Chen wrote:
We should call vga_arb_device_init() after PCI enumeration, otherwise it may fail to select the default VGA device. Since vga_arb_device_init() and PCI enumeration function (i.e., pcibios_init() or acpi_init()) are both wrapped by subsys_initcall(), their sequence is not assured. So, we use subsys_initcall_sync() instead of subsys_initcall() to wrap vga_arb_ device_init().
Trying to juggle levels like this always fails if you build the code as a module.
Why not fix it properly and handle the out-of-order loading by returning a "deferred" error if you do not have your resources yet?
thanks,
greg k-h