I got an PCIe device that is woken up by user space, clocks needs to configured in various ways before the device enables its PCIe interface. The device is connected to a built in root bridge on a P2010(mpc85xx) CPU. To enable HP in Linux we need to apply some minor hacks. First, The contoller has MSI but there is no pci_find_capability(dev, PCI_CAP_ID_MSI) so portdrv_core.c:init_service_irqs() fails this test(dev->pin is false too): if (!pci_enable_msi(dev) || dev->pin) Is the code correct? Should our root bridge have PCI_CAP_ID_MSI? Second problem, the root bride does not have PCI_EXP_FLAGS_SLOT so portdrv_core.c:get_port_device_capability() fails this test: if ((cap_mask & PCIE_PORT_SERVICE_HP) && (reg16 & PCI_EXP_FLAGS_SLOT)) { pci_read_config_dword(dev, pos + PCI_EXP_SLTCAP, ®32); if (reg32 & PCI_EXP_SLTCAP_HPC) { services |= PCIE_PORT_SERVICE_HP; which cause PCIE_PORT_SERVICE_HP to be unset in services. Is PCI_EXP_FLAGS_SLOT really required for hot plug? Perhaps there another way? Jocke -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html