summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2016-07-01 01:44:38 +0200
committerLaszlo Ersek <lersek@redhat.com>2016-07-13 08:39:14 +0200
commitc6b5fb7386c3a9a7fcfe0eead717f4248a7af346 (patch)
treed75faa4217833c92f77d8c75bc77eeaa213a654a /MdeModulePkg
parent12e6f4f1be0246f735495eb9b6987a6d94fa5b35 (diff)
downloadedk2-c6b5fb7386c3a9a7fcfe0eead717f4248a7af346.tar.gz
edk2-c6b5fb7386c3a9a7fcfe0eead717f4248a7af346.tar.bz2
edk2-c6b5fb7386c3a9a7fcfe0eead717f4248a7af346.zip
MdeModulePkg/PciBusDxe: look for the right capability in IsSHPC()
The PCI Hot Plug capability register block is marked with capability ID 0x0C (EFI_PCI_CAPABILITY_ID_SHPC), not 0x06 (EFI_PCI_CAPABILITY_ID_HOTPLUG). This bug prevents PciBusDxe from recognizing whether a PCI-to-PCI bridge supports hotplug. In turn the platform's EFI_PCI_HOT_PLUG_INIT_PROTOCOL is not consulted for resource padding information: GatherPpbInfo() [PciEnumeratorSupport.c] GetResourcePaddingPpb() [PciResourceSupport.c] GetResourcePaddingForHpb() [PciHotPlugSupport.c] IsPciHotPlugBus() [PciHotPlugSupport.c] IsSHPC() [PciHotPlugSupport.c] // // returns FALSE // // // the following is not reached: // gPciHotPlugInit->GetResourcePadding() Look for the correct capability ID. Cc: "Johnson, Brian J." <bjohnson@sgi.com> Cc: Alex Williamson <alex.williamson@redhat.com> Cc: Andrew Fish <afish@apple.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Marcel Apfelbaum <marcel@redhat.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ruiyu Ni <Ruiyu.ni@intel.com>
Diffstat (limited to 'MdeModulePkg')
-rw-r--r--MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c
index 257874b8b0..ca8766869a 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c
@@ -300,7 +300,7 @@ IsSHPC (
Offset = 0;
Status = LocateCapabilityRegBlock (
PciIoDevice,
- EFI_PCI_CAPABILITY_ID_HOTPLUG,
+ EFI_PCI_CAPABILITY_ID_SHPC,
&Offset,
NULL
);