hw/isa/isa-bus: Turn isa_build_aml() into qbus_build_aml()
Frees isa-bus.c from implicit ACPI dependency. While at it, resolve open coding of qbus_build_aml() in piix3 and ich9. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20230121151941.24120-3-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
1f1b30af75
commit
9c6c0aeacd
@ -2,6 +2,7 @@
|
||||
#include "hw/acpi/acpi_dev_interface.h"
|
||||
#include "hw/acpi/acpi_aml_interface.h"
|
||||
#include "qemu/module.h"
|
||||
#include "qemu/queue.h"
|
||||
|
||||
void acpi_send_event(DeviceState *dev, AcpiEventStatusBits event)
|
||||
{
|
||||
@ -12,6 +13,15 @@ void acpi_send_event(DeviceState *dev, AcpiEventStatusBits event)
|
||||
}
|
||||
}
|
||||
|
||||
void qbus_build_aml(BusState *bus, Aml *scope)
|
||||
{
|
||||
BusChild *kid;
|
||||
|
||||
QTAILQ_FOREACH(kid, &bus->children, sibling) {
|
||||
call_dev_aml_func(DEVICE(kid->child), scope);
|
||||
}
|
||||
}
|
||||
|
||||
static void register_types(void)
|
||||
{
|
||||
static const TypeInfo acpi_dev_if_info = {
|
||||
|
@ -97,13 +97,10 @@ static void ich9_smbus_realize(PCIDevice *d, Error **errp)
|
||||
|
||||
static void build_ich9_smb_aml(AcpiDevAmlIf *adev, Aml *scope)
|
||||
{
|
||||
BusChild *kid;
|
||||
ICH9SMBState *s = ICH9_SMB_DEVICE(adev);
|
||||
BusState *bus = BUS(s->smb.smbus);
|
||||
|
||||
QTAILQ_FOREACH(kid, &bus->children, sibling) {
|
||||
call_dev_aml_func(DEVICE(kid->child), scope);
|
||||
}
|
||||
qbus_build_aml(bus, scope);
|
||||
}
|
||||
|
||||
static void ich9_smb_class_init(ObjectClass *klass, void *data)
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
#include "exec/memory.h"
|
||||
#include "hw/acpi/acpi.h"
|
||||
#include "hw/acpi/acpi_aml_interface.h"
|
||||
#include "hw/acpi/aml-build.h"
|
||||
#include "hw/acpi/bios-linker-loader.h"
|
||||
#include "hw/acpi/generic_event_device.h"
|
||||
@ -129,7 +130,7 @@ build_dsdt_microvm(GArray *table_data, BIOSLinker *linker,
|
||||
|
||||
sb_scope = aml_scope("_SB");
|
||||
fw_cfg_add_acpi_dsdt(sb_scope, x86ms->fw_cfg);
|
||||
isa_build_aml(ISA_BUS(isabus), sb_scope);
|
||||
qbus_build_aml(BUS(isabus), sb_scope);
|
||||
build_ged_aml(sb_scope, GED_DEVICE, x86ms->acpi_dev,
|
||||
GED_MMIO_IRQ, AML_SYSTEM_MEMORY, GED_MMIO_BASE);
|
||||
acpi_dsdt_add_power_button(sb_scope);
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include "hw/sysbus.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "hw/isa/isa.h"
|
||||
#include "hw/acpi/acpi_aml_interface.h"
|
||||
|
||||
static ISABus *isabus;
|
||||
|
||||
@ -188,15 +187,6 @@ ISADevice *isa_vga_init(ISABus *bus)
|
||||
}
|
||||
}
|
||||
|
||||
void isa_build_aml(ISABus *bus, Aml *scope)
|
||||
{
|
||||
BusChild *kid;
|
||||
|
||||
QTAILQ_FOREACH(kid, &bus->parent_obj.children, sibling) {
|
||||
call_dev_aml_func(DEVICE(kid->child), scope);
|
||||
}
|
||||
}
|
||||
|
||||
static void isabus_bridge_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
@ -813,7 +813,6 @@ static void ich9_send_gpe(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
|
||||
static void build_ich9_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
|
||||
{
|
||||
Aml *field;
|
||||
BusChild *kid;
|
||||
ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
|
||||
BusState *bus = BUS(s->isa_bus);
|
||||
Aml *sb_scope = aml_scope("\\_SB");
|
||||
@ -835,9 +834,7 @@ static void build_ich9_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
|
||||
aml_append(sb_scope, field);
|
||||
aml_append(scope, sb_scope);
|
||||
|
||||
QTAILQ_FOREACH(kid, &bus->children, sibling) {
|
||||
call_dev_aml_func(DEVICE(kid->child), scope);
|
||||
}
|
||||
qbus_build_aml(bus, scope);
|
||||
}
|
||||
|
||||
static void ich9_lpc_class_init(ObjectClass *klass, void *data)
|
||||
|
@ -306,7 +306,6 @@ static void pci_piix3_realize(PCIDevice *dev, Error **errp)
|
||||
static void build_pci_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
|
||||
{
|
||||
Aml *field;
|
||||
BusChild *kid;
|
||||
Aml *sb_scope = aml_scope("\\_SB");
|
||||
BusState *bus = qdev_get_child_bus(DEVICE(adev), "isa.0");
|
||||
|
||||
@ -322,9 +321,7 @@ static void build_pci_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
|
||||
aml_append(sb_scope, field);
|
||||
aml_append(scope, sb_scope);
|
||||
|
||||
QTAILQ_FOREACH(kid, &bus->children, sibling) {
|
||||
call_dev_aml_func(DEVICE(kid->child), scope);
|
||||
}
|
||||
qbus_build_aml(bus, scope);
|
||||
}
|
||||
|
||||
static void pci_piix3_class_init(ObjectClass *klass, void *data)
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include "qom/object.h"
|
||||
#include "hw/acpi/aml-build.h"
|
||||
#include "hw/qdev-core.h"
|
||||
|
||||
#define TYPE_ACPI_DEV_AML_IF "acpi-dev-aml-interface"
|
||||
typedef struct AcpiDevAmlIfClass AcpiDevAmlIfClass;
|
||||
@ -46,4 +47,6 @@ static inline void call_dev_aml_func(DeviceState *dev, Aml *scope)
|
||||
}
|
||||
}
|
||||
|
||||
void qbus_build_aml(BusState *bus, Aml *scope);
|
||||
|
||||
#endif
|
||||
|
@ -86,7 +86,6 @@ bool isa_realize_and_unref(ISADevice *dev, ISABus *bus, Error **errp);
|
||||
ISADevice *isa_create_simple(ISABus *bus, const char *name);
|
||||
|
||||
ISADevice *isa_vga_init(ISABus *bus);
|
||||
void isa_build_aml(ISABus *bus, Aml *scope);
|
||||
|
||||
/**
|
||||
* isa_register_ioport: Install an I/O port region on the ISA bus.
|
||||
|
Loading…
Reference in New Issue
Block a user