[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 15/35] acpi: ich9-smb: add support for AcpiDevAmlIf interface
From: |
Igor Mammedov |
Subject: |
[PATCH 15/35] acpi: ich9-smb: add support for AcpiDevAmlIf interface |
Date: |
Mon, 16 May 2022 11:25:50 -0400 |
wire AcpiDevAmlIf interface to build ich9-smb and its slave
devices AML. It will be used by followup patches to switch
from creating AML in ad-hoc way to a more systematic one
that will scan present devices and ask them to provide
their AML code like it's done with ISA devices.
This patch is a partial conversion, as it only fetches
AML from slave devices attached to its I2C bus.
The conversion will be completed when PCI bus is
switched to use AcpiDevAmlIf and build_smb0() could be
dropped.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i2c/smbus_ich9.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c
index 44dd5653b7..ee50ba1f2c 100644
--- a/hw/i2c/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
@@ -29,6 +29,7 @@
#include "hw/i386/ich9.h"
#include "qom/object.h"
+#include "hw/acpi/acpi_aml_interface.h"
OBJECT_DECLARE_SIMPLE_TYPE(ICH9SMBState, ICH9_SMB_DEVICE)
@@ -94,10 +95,22 @@ static void ich9_smbus_realize(PCIDevice *d, Error **errp)
&s->smb.io);
}
+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);
+ }
+}
+
static void ich9_smb_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
+ AcpiDevAmlIfClass *adevc = ACPI_DEV_AML_IF_CLASS(klass);
k->vendor_id = PCI_VENDOR_ID_INTEL;
k->device_id = PCI_DEVICE_ID_INTEL_ICH9_6;
@@ -112,6 +125,7 @@ static void ich9_smb_class_init(ObjectClass *klass, void
*data)
* pc_q35_init()
*/
dc->user_creatable = false;
+ adevc->build_dev_aml = build_ich9_smb_aml;
}
static void ich9_smb_set_irq(PMSMBus *pmsmb, bool enabled)
@@ -143,6 +157,7 @@ static const TypeInfo ich9_smb_info = {
.class_init = ich9_smb_class_init,
.interfaces = (InterfaceInfo[]) {
{ INTERFACE_CONVENTIONAL_PCI_DEVICE },
+ { TYPE_ACPI_DEV_AML_IF },
{ },
},
};
--
2.31.1
- [PATCH 04/35] acpi: parallel port: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml, (continued)
- [PATCH 04/35] acpi: parallel port: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml, Igor Mammedov, 2022/05/16
- [PATCH 06/35] acpi: mc146818rtc: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml, Igor Mammedov, 2022/05/16
- [PATCH 05/35] acpi: serial-is: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml, Igor Mammedov, 2022/05/16
- [PATCH 07/35] acpi: pckbd: replace ISADeviceClass::build_aml with AcpiDevAmlIfClass:build_dev_aml, Igor Mammedov, 2022/05/16
- [PATCH 08/35] isa-bus: drop no longer used ISADeviceClass::build_aml, Igor Mammedov, 2022/05/16
- [PATCH 10/35] tests: acpi: q35: add test for smbus-ipmi device, Igor Mammedov, 2022/05/16
- [PATCH 12/35] tests: acpi: whitelist DSDT.ipmismbus expected blob, Igor Mammedov, 2022/05/16
- [PATCH 13/35] ipmi: acpi: use relative path to resource source, Igor Mammedov, 2022/05/16
- [PATCH 11/35] tests: acpi: update expected blob DSDT.ipmismbus, Igor Mammedov, 2022/05/16
- [PATCH 14/35] tests: acpi: update expected DSDT.ipmismbus blob, Igor Mammedov, 2022/05/16
- [PATCH 15/35] acpi: ich9-smb: add support for AcpiDevAmlIf interface,
Igor Mammedov <=
- [PATCH 19/35] acpi: pc: isa bridge: use AcpiDevAmlIf interface to build ISA device descriptors, Igor Mammedov, 2022/05/16
- [PATCH 16/35] acpi: ipmi: use AcpiDevAmlIf interface to build IPMI device descriptors, Igor Mammedov, 2022/05/16
- [PATCH 17/35] q35: acpi: drop not needed PCMachineClass::do_not_add_smb_acpi, Igor Mammedov, 2022/05/16
- [PATCH 18/35] tests: acpi: white-list to be re-factored pc/q35 DSDT, Igor Mammedov, 2022/05/16
- [PATCH 09/35] tests: acpi: add and whitelist DSDT.ipmismbus expected blob, Igor Mammedov, 2022/05/16
- [PATCH 20/35] acpi: q35: isa bridge: use AcpiDevAmlIf interface to build ISA device descriptors, Igor Mammedov, 2022/05/16
- [PATCH 23/35] tests: acpi: add applesmc testcase, Igor Mammedov, 2022/05/16
- [PATCH 22/35] tests: acpi: add and white-list DSDT.applesmc expected blob, Igor Mammedov, 2022/05/16
- [PATCH 21/35] tests: acpi: update expected blobs, Igor Mammedov, 2022/05/16
- [PATCH 24/35] acpi: applesmc: use AcpiDevAmlIfClass:build_dev_aml to provide device's AML, Igor Mammedov, 2022/05/16