On Wed, 29 Apr 2020 16:00:01 +0200 Gerd Hoffmann <kra...@redhat.com> wrote:
> Signed-off-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Igor Mammedov <imamm...@redhat.com> > --- > hw/i386/acpi-build.c | 39 --------------------------------------- > hw/input/pckbd.c | 31 +++++++++++++++++++++++++++++++ > 2 files changed, 31 insertions(+), 39 deletions(-) > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 7415bd5fdce0..643e875c05a5 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -1052,42 +1052,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 void build_isa_devices_aml(Aml *table) > { > bool ambiguous; > @@ -1095,9 +1059,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); > } >