diff options
author | Gavin Shan <gwshan@linux.vnet.ibm.com> | 2017-03-10 11:25:46 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-03-31 16:57:07 +1100 |
commit | 7c4a326bea502fc1f3b8b767f6ff9c02b7d1b254 (patch) | |
tree | 4c971e7636e18250ed6456107ea244aa51cdda88 | |
parent | 07f17c3c7db3df48f9f681edf8453312837e6119 (diff) | |
download | skiboot-7c4a326bea502fc1f3b8b767f6ff9c02b7d1b254.zip skiboot-7c4a326bea502fc1f3b8b767f6ff9c02b7d1b254.tar.gz skiboot-7c4a326bea502fc1f3b8b767f6ff9c02b7d1b254.tar.bz2 |
core/pci: Disable surprise hotplug on root port
We are creating PCI slot on root port, where the PCI slot isn't
supported from hardware. For this case, the surprised hotplug
functionality shouldn't be enabled even the link state change
reporting is supported in hardware.
This disables surprise hotplug if PCI slot isn't supported in
hardware.
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | core/pcie-slot.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/core/pcie-slot.c b/core/pcie-slot.c index aca59dd..022668a 100644 --- a/core/pcie-slot.c +++ b/core/pcie-slot.c @@ -500,12 +500,14 @@ struct pci_slot *pcie_slot_create(struct phb *phb, struct pci_device *pd) * Its PDC (Presence Detection Change) isn't reliable. To mark that as * broken on them. */ - if (slot->slot_cap & PCICAP_EXP_SLOTCAP_HPLUG_SURP) { - slot->surprise_pluggable = 1; - } else if (slot->link_cap & PCICAP_EXP_LCAP_DL_ACT_REP) { - slot->surprise_pluggable = 1; + if (slot->pcie_cap & PCICAP_EXP_CAP_SLOT) { + if (slot->slot_cap & PCICAP_EXP_SLOTCAP_HPLUG_SURP) { + slot->surprise_pluggable = 1; + } else if (slot->link_cap & PCICAP_EXP_LCAP_DL_ACT_REP) { + slot->surprise_pluggable = 1; - pci_slot_add_flags(slot, PCI_SLOT_FLAG_BROKEN_PDC); + pci_slot_add_flags(slot, PCI_SLOT_FLAG_BROKEN_PDC); + } } /* Standard slot operations */ |