But isn't the root bridge discovered by the driver (pci-imx6 in this case) for
that? And the driver probe path eventually calls into the sysfs file creation.
I compared the file creation to usb, as this is a discoverable bus as well.
There is no special initialization regarding sysfs.
If, for some reason, the device enumeration for PCI bus during imx6_pcie_probe
is delayed after pci_sysfs_init initcall, this initcall essentially does
nothing, no devices or busses to iterate. Which means the complete pcie sysfs
creation is done from bridge probe path. There is no reason to iterate over
discovered PCIe devices/busses separately.
So technically the device is not probed from within a initcall but a
kthread. It is set to be probed asynchronous in imx6_pcie_driver.
That may be the problem, respectively that system is incomplete
You are registering a PCI bridge. The PCI subsystem should be
done setting up when you run. That is just a simple dependency.
Is there such an dependency in the first place? I can't see anything, even the
late_initcall to pci_resource_alignment_sysfs_init is a different matter.