On Wed, Jun 17, 2020 at 09:11:33AM +0200, Gerd Hoffmann wrote: > DSDT change: isa device order changes in case MI1 (ipmi) is present. > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Reviewed-by: Igor Mammedov <imamm...@redhat.com> > --- > hw/i386/acpi-build.c | 39 -------------------------------- > hw/input/pckbd.c | 31 +++++++++++++++++++++++++ > tests/data/acpi/pc/DSDT.ipmikcs | Bin 5086 -> 5086 bytes > tests/data/acpi/q35/DSDT.ipmibt | Bin 7827 -> 7827 bytes > 4 files changed, 31 insertions(+), 39 deletions(-)
Please don't add binary file diffs together with source changes. Pls follow the process outlined in tests/qtest/bios-tables-test.c. > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 45297d9a90e7..13113e83dfe2 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -938,42 +938,6 @@ static void build_hpet_aml(Aml *table) > aml_append(table, scope); > } > > -static Aml *build_kbd_device_aml(void) > -{ > - Aml *dev; > - Aml *crs; > - > - dev = aml_device("KBD"); > - aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0303"))); > - > - aml_append(dev, aml_name_decl("_STA", aml_int(0xf))); > - > - crs = aml_resource_template(); > - aml_append(crs, aml_io(AML_DECODE16, 0x0060, 0x0060, 0x01, 0x01)); > - aml_append(crs, aml_io(AML_DECODE16, 0x0064, 0x0064, 0x01, 0x01)); > - aml_append(crs, aml_irq_no_flags(1)); > - aml_append(dev, aml_name_decl("_CRS", crs)); > - > - return dev; > -} > - > -static Aml *build_mouse_device_aml(void) > -{ > - Aml *dev; > - Aml *crs; > - > - dev = aml_device("MOU"); > - aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0F13"))); > - > - aml_append(dev, aml_name_decl("_STA", aml_int(0xf))); > - > - crs = aml_resource_template(); > - aml_append(crs, aml_irq_no_flags(12)); > - aml_append(dev, aml_name_decl("_CRS", crs)); > - > - return dev; > -} > - > static Aml *build_vmbus_device_aml(VMBusBridge *vmbus_bridge) > { > Aml *dev; > @@ -1019,9 +983,6 @@ static void build_isa_devices_aml(Aml *table) > Aml *scope = aml_scope("_SB.PCI0.ISA"); > Object *obj = object_resolve_path_type("", TYPE_ISA_BUS, &ambiguous); > > - aml_append(scope, build_kbd_device_aml()); > - aml_append(scope, build_mouse_device_aml()); > - > if (ambiguous) { > error_report("Multiple ISA busses, unable to define IPMI ACPI data"); > } else if (!obj) { > diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c > index 60a41303203a..29d633ca9478 100644 > --- a/hw/input/pckbd.c > +++ b/hw/input/pckbd.c > @@ -26,6 +26,7 @@ > #include "qemu/log.h" > #include "hw/isa/isa.h" > #include "migration/vmstate.h" > +#include "hw/acpi/aml-build.h" > #include "hw/input/ps2.h" > #include "hw/irq.h" > #include "hw/input/i8042.h" > @@ -561,12 +562,42 @@ static void i8042_realizefn(DeviceState *dev, Error > **errp) > qemu_register_reset(kbd_reset, s); > } > > +static void i8042_build_aml(ISADevice *isadev, Aml *scope) > +{ > + Aml *kbd; > + Aml *mou; > + Aml *crs; > + > + crs = aml_resource_template(); > + aml_append(crs, aml_io(AML_DECODE16, 0x0060, 0x0060, 0x01, 0x01)); > + aml_append(crs, aml_io(AML_DECODE16, 0x0064, 0x0064, 0x01, 0x01)); > + aml_append(crs, aml_irq_no_flags(1)); > + > + kbd = aml_device("KBD"); > + aml_append(kbd, aml_name_decl("_HID", aml_eisaid("PNP0303"))); > + aml_append(kbd, aml_name_decl("_STA", aml_int(0xf))); > + aml_append(kbd, aml_name_decl("_CRS", crs)); > + > + crs = aml_resource_template(); > + aml_append(crs, aml_irq_no_flags(12)); > + > + mou = aml_device("MOU"); > + aml_append(mou, aml_name_decl("_HID", aml_eisaid("PNP0F13"))); > + aml_append(mou, aml_name_decl("_STA", aml_int(0xf))); > + aml_append(mou, aml_name_decl("_CRS", crs)); > + > + aml_append(scope, kbd); > + aml_append(scope, mou); > +} > + > static void i8042_class_initfn(ObjectClass *klass, void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > + ISADeviceClass *isa = ISA_DEVICE_CLASS(klass); > > dc->realize = i8042_realizefn; > dc->vmsd = &vmstate_kbd_isa; > + isa->build_aml = i8042_build_aml; > set_bit(DEVICE_CATEGORY_INPUT, dc->categories); > } > > diff --git a/tests/data/acpi/pc/DSDT.ipmikcs b/tests/data/acpi/pc/DSDT.ipmikcs > index > c285651131dc2ab8b0f32de750d7ac02a8b09936..1c19e2f354d022279d7e1343fa7212396d8c25a0 > 100644 > GIT binary patch > delta 20 > ccmcboeouYFO2)~oOdgY0GRAE7Wtu1m09c?0ga7~l > > delta 20 > ccmcboeouYFO2)|_8Dl1|Wc1kV%QR6C0AuwCZvX%Q > > diff --git a/tests/data/acpi/q35/DSDT.ipmibt b/tests/data/acpi/q35/DSDT.ipmibt > index > 38723daef80421ea528b2ad2d411e7357df43956..0173c3668a6cdef80127de7880a19cb5c5ea7dc0 > 100644 > GIT binary patch > delta 20 > ccmbPiJK1)F4%6fgChy5QOfj1;GaZly08TOoX8-^I > > delta 20 > ccmbPiJK1)F4%6gvrkKe(Ox~L>GaZly08Od~RsaA1 > > -- > 2.18.4