aboutsummaryrefslogtreecommitdiff
path: root/hw/isa
diff options
context:
space:
mode:
Diffstat (limited to 'hw/isa')
-rw-r--r--hw/isa/isa-bus.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index cd5ad36..237e2ce 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -24,6 +24,7 @@
#include "hw/sysbus.h"
#include "sysemu/sysemu.h"
#include "hw/isa/isa.h"
+#include "hw/acpi/acpi_aml_interface.h"
static ISABus *isabus;
@@ -196,8 +197,12 @@ void isa_build_aml(ISABus *bus, Aml *scope)
QTAILQ_FOREACH(kid, &bus->parent_obj.children, sibling) {
dev = ISA_DEVICE(kid->child);
dc = ISA_DEVICE_GET_CLASS(dev);
+ bool has_build_dev_aml = !!object_dynamic_cast(OBJECT(dev),
+ TYPE_ACPI_DEV_AML_IF);
if (dc->build_aml) {
dc->build_aml(dev, scope);
+ } else if (has_build_dev_aml) {
+ call_dev_aml_func(DEVICE(dev), scope);
}
}
}