On Thu, Jan 30, 2014 at 08:44:58PM +0800, Arnd Bergmann wrote: > On Thursday 30 January 2014, Pratyush Anand wrote: > > On Thu, Jan 30, 2014 at 07:43:37PM +0800, Kishon Vijay Abraham I wrote: > > > Hi, > > > > > > On Thursday 30 January 2014 04:18 PM, Mohit Kumar wrote: > > > > From: Pratyush Anand <[email protected]> > > > > > > > > PCIe RC drivers are initialized with subsys_initcall. Few PCIe drivers > > > > like SPEAr13xx needs phy drivers to be initialized. > > > > > > Instead change PCIe RC drivers to module init. Phy drivers should be > > > loaded > > > very early otherwise. (Hint: drivers/Makefile). > > > > I think PCIe RC driver can not be made module init. Bjorn can comment > > better. > > I don't think there is any problem here: the PCI devices will only appear > after the PCIe root bus has been probed. All drivers using the regular > pci_driver framework should work fine even if they are loaded before the > device is found. There are a handful of drivers using 'pci_get_device' > rather than pci_register_driver, and those will break. As far as I can > tell, those drivers are all x86 specific, and you should not worry about > them. > > Having the PHY driver get initialized after the PCI root driver should > also work, but it requires correct handling of -EPROBE_DEFER: if phy_get
I had issue with phy-core driver getting initialized after pcie rc driver. I found a kernel crash, as devm_phy_get was called before phy_class was created. I think this too need to be fixed, we should not see a crash. Anyway, I will keep spear phy and rc driver both with module_init and -EPROBE_DEFER implementation. Regards Pratyush > returns this error, the PCI driver must silently return the same error > from its probe() function so it will get called again at a later time > (after some other devices have been probed successfully). > > Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

