[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 30/33] acpi: pci: move BSEL into build_append_pcihp_slots()
From: |
Igor Mammedov |
Subject: |
[PATCH 30/33] acpi: pci: move BSEL into build_append_pcihp_slots() |
Date: |
Fri, 24 Feb 2023 16:38:09 +0100 |
Generic PCI enumeration code doesn't really need access to
BSEL value, it is only used as means to decide if hotplug
enumerator should be called.
Use stateless object_property_find() to do that, and move
the rest of BSEL handling into build_append_pcihp_slots()
where it belongs.
This cleans up generic code a bit from hotplug stuff
and follow up patch will remove remaining call to
build_append_pcihp_slots() from generic code, making
it possible to use without ACPI PCI hotplug dependencies.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i386/acpi-build.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 6b51b7401d..d068b0507e 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -519,12 +519,14 @@ static bool is_devfn_ignored_hotplug(const int devfn,
const PCIBus *bus)
return false;
}
-static void build_append_pcihp_slots(Aml *parent_scope, PCIBus *bus,
- QObject *bsel)
+static void build_append_pcihp_slots(Aml *parent_scope, PCIBus *bus)
{
int devfn;
Aml *dev, *notify_method = NULL, *method;
+ QObject *bsel = object_property_get_qobject(OBJECT(bus),
+ ACPI_PCIHP_PROP_BSEL, NULL);
uint64_t bsel_val = qnum_get_uint(qobject_to(QNum, bsel));
+ qobject_unref(bsel);
aml_append(parent_scope, aml_name_decl("BSEL", aml_int(bsel_val)));
notify_method = aml_method("DVNT", 2, AML_NOTSERIALIZED);
@@ -569,12 +571,9 @@ static void build_append_pcihp_slots(Aml *parent_scope,
PCIBus *bus,
void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus)
{
- QObject *bsel;
int devfn;
Aml *dev;
- bsel = object_property_get_qobject(OBJECT(bus), ACPI_PCIHP_PROP_BSEL,
NULL);
-
for (devfn = 0; devfn < ARRAY_SIZE(bus->devices); devfn++) {
/* ACPI spec: 1.0b: Table 6-2 _ADR Object Bus Types, PCI type */
int adr = PCI_SLOT(devfn) << 16 | PCI_FUNC(devfn);
@@ -600,11 +599,9 @@ void build_append_pci_bus_devices(Aml *parent_scope,
PCIBus *bus)
aml_append(parent_scope, dev);
}
- if (bsel) {
- build_append_pcihp_slots(parent_scope, bus, bsel);
+ if (object_property_find(OBJECT(bus), ACPI_PCIHP_PROP_BSEL)) {
+ build_append_pcihp_slots(parent_scope, bus);
}
-
- qobject_unref(bsel);
}
static bool build_append_notfication_callback(Aml *parent_scope,
--
2.39.1
- [PATCH 19/33] tests: acpi: add device with acpi-index on non-hotpluggble bus, (continued)
- [PATCH 19/33] tests: acpi: add device with acpi-index on non-hotpluggble bus, Igor Mammedov, 2023/02/24
- [PATCH 20/33] acpi: pci: support acpi-index for non-hotpluggable devices, Igor Mammedov, 2023/02/24
- [PATCH 22/33] tests: acpi: whitelist DSDT before exposing non zero functions, Igor Mammedov, 2023/02/24
- [PATCH 21/33] tests: acpi: update expected blobs, Igor Mammedov, 2023/02/24
- [PATCH 26/33] tests: acpi: add non zero function device with acpi-index on non-hotpluggble bus, Igor Mammedov, 2023/02/24
- [PATCH 24/33] tests: acpi: update expected blobs, Igor Mammedov, 2023/02/24
- [PATCH 25/33] tests: acpi: whitelist DSDT before adding non-0 function device with acpi-index to testcases, Igor Mammedov, 2023/02/24
- [PATCH 23/33] acpi: pci: describe all functions on populated slots, Igor Mammedov, 2023/02/24
- [PATCH 29/33] acpi: pci: drop BSEL usage when deciding that device isn't hotpluggable, Igor Mammedov, 2023/02/24
- [PATCH 31/33] acpi: pci: move out ACPI PCI hotplug generator from generic slot generator build_append_pci_bus_devices(), Igor Mammedov, 2023/02/24
- [PATCH 30/33] acpi: pci: move BSEL into build_append_pcihp_slots(),
Igor Mammedov <=
- [PATCH 27/33] tests: acpi: update expected blobs, Igor Mammedov, 2023/02/24
- [PATCH 28/33] pci: move acpi-index uniqueness check to generic PCI device code, Igor Mammedov, 2023/02/24
- [PATCH 32/33] pcihp: move fields enabling hotplug into AcpiPciHpState, Igor Mammedov, 2023/02/24
- [PATCH 33/33] pcihp: add ACPI PCI hotplug specific is_hotpluggable_bus() callback, Igor Mammedov, 2023/02/24