From fb49379ed22341d5e5e859af6823e9361db021f6 Mon Sep 17 00:00:00 2001 From: Kyösti Mälkki Date: Sun, 30 Jun 2019 06:29:52 +0300 Subject: device/pci_rom: Fix redundant pci_rom_probe() calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For the PCI_VENDOR_ID_ATI case, we can rely on pci_rom_acpi_fill_vfct() to make the call if necessary. For hardware other than ATI, pci_rom_probe() was already called from pci_rom_ssdt() and pci_dev_init(), so PCI_ROM_ADDRESS BAR is already enabled, if requested so. Change-Id: I0ea893a9ac7ba480840ebf5570d8fe0d9e20938f Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/33909 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph Reviewed-by: Mike Banon --- src/arch/x86/acpi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/arch/x86') diff --git a/src/arch/x86/acpi.c b/src/arch/x86/acpi.c index 80923e3edd..8ab993ec48 100644 --- a/src/arch/x86/acpi.c +++ b/src/arch/x86/acpi.c @@ -763,11 +763,14 @@ void acpi_create_vfct(struct device *device, memcpy(header->asl_compiler_id, ASLC, 4); header->asl_compiler_revision = asl_revision; - header->length = sizeof(struct acpi_vfct); header->revision = get_acpi_table_revision(VFCT); current = acpi_fill_vfct(device, vfct, current); + /* If no BIOS image, return with header->length == 0. */ + if (!vfct->VBIOSImageOffset) + return; + /* (Re)calculate length and checksum. */ header->length = current - (unsigned long)vfct; header->checksum = acpi_checksum((void *)vfct, header->length); -- cgit v1.2.3