From a560c711093cbfc3be02018e3ef9788fead4184d Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Wed, 24 Feb 2021 22:27:44 +0100 Subject: sb/intel/common/pciehp: Replace HP dummy device with common code Use the common PCIEXP_HOTPLUG code to generate a dummy device for PCIe ports supporting hotplug. This allows to have control over how much resources are allocated to hotplug ports. Tested on thinkpad X220: now hotplugging a dGPU via the expresscard slot sometimes works. Change-Id: I3eec5214c9d200ef97d1ccfdc00e8ea0ee7cfbc6 Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/c/coreboot/+/51068 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Nico Huber Reviewed-by: Patrick Rudolph --- src/southbridge/intel/bd82x6x/Kconfig | 3 +++ src/southbridge/intel/bd82x6x/pcie.c | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src/southbridge/intel/bd82x6x') diff --git a/src/southbridge/intel/bd82x6x/Kconfig b/src/southbridge/intel/bd82x6x/Kconfig index 812b6c052e..701c98bf15 100644 --- a/src/southbridge/intel/bd82x6x/Kconfig +++ b/src/southbridge/intel/bd82x6x/Kconfig @@ -65,4 +65,7 @@ config HIDE_MEI_ON_ERROR device will be hidden when ME is in an inoperable mode, e.g. if me_cleaner was used. +config PCIEXP_HOTPLUG + default y + endif diff --git a/src/southbridge/intel/bd82x6x/pcie.c b/src/southbridge/intel/bd82x6x/pcie.c index f6bffbb3b9..8513390828 100644 --- a/src/southbridge/intel/bd82x6x/pcie.c +++ b/src/southbridge/intel/bd82x6x/pcie.c @@ -244,11 +244,11 @@ static void pch_pciexp_scan_bridge(struct device *dev) { struct southbridge_intel_bd82x6x_config *config = dev->chip_info; - /* Normal PCIe Scan */ - pciexp_scan_bridge(dev); - - if (config->pcie_hotplug_map[PCI_FUNC(dev->path.pci.devfn)]) { - intel_acpi_pcie_hotplug_scan_slot(dev->link_list); + if (CONFIG(PCIEXP_HOTPLUG) && config->pcie_hotplug_map[PCI_FUNC(dev->path.pci.devfn)]) { + pciexp_hotplug_scan_bridge(dev); + } else { + /* Normal PCIe Scan */ + pciexp_scan_bridge(dev); } /* Late Power Management init after bridge device enumeration */ -- cgit v1.2.3