On Tue, 5 May 2020 13:38:32 +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 | 17 ----------------- > hw/rtc/mc146818rtc.c | 22 ++++++++++++++++++++++ > 2 files changed, 22 insertions(+), 17 deletions(-) > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 2e15f6848e7e..0bfa2dd23fcc 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -1137,22 +1137,6 @@ static Aml *build_fdc_device_aml(ISADevice *fdc) > return dev; > } > > -static Aml *build_rtc_device_aml(void) > -{ > - Aml *dev; > - Aml *crs; > - > - dev = aml_device("RTC"); > - aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0B00"))); > - crs = aml_resource_template(); > - aml_append(crs, aml_io(AML_DECODE16, 0x0070, 0x0070, 0x10, 0x02)); > - aml_append(crs, aml_irq_no_flags(8)); > - aml_append(crs, aml_io(AML_DECODE16, 0x0072, 0x0072, 0x02, 0x06)); > - aml_append(dev, aml_name_decl("_CRS", crs)); > - > - return dev; > -} > - > static Aml *build_kbd_device_aml(void) > { > Aml *dev; > @@ -1278,7 +1262,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_rtc_device_aml()); > aml_append(scope, build_kbd_device_aml()); > aml_append(scope, build_mouse_device_aml()); > if (fdc) { > diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c > index d18c09911be2..2104e0aa3b14 100644 > --- a/hw/rtc/mc146818rtc.c > +++ b/hw/rtc/mc146818rtc.c > @@ -27,6 +27,7 @@ > #include "qemu/cutils.h" > #include "qemu/module.h" > #include "qemu/bcd.h" > +#include "hw/acpi/aml-build.h" > #include "hw/irq.h" > #include "hw/qdev-properties.h" > #include "qemu/timer.h" > @@ -1007,13 +1008,34 @@ static void rtc_resetdev(DeviceState *d) > } > } > > +static void rtc_build_aml(ISADevice *isadev, Aml *scope) > +{ > + Aml *dev; > + Aml *crs; > + > + crs = aml_resource_template(); > + aml_append(crs, aml_io(AML_DECODE16, RTC_ISA_BASE, RTC_ISA_BASE, > + 0x10, 0x02)); > + aml_append(crs, aml_irq_no_flags(RTC_ISA_IRQ)); > + aml_append(crs, aml_io(AML_DECODE16, RTC_ISA_BASE + 2, RTC_ISA_BASE + 2, > + 0x02, 0x06)); > + > + dev = aml_device("RTC"); > + aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0B00"))); > + aml_append(dev, aml_name_decl("_CRS", crs)); > + > + aml_append(scope, dev); > +} > + > static void rtc_class_initfn(ObjectClass *klass, void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > + ISADeviceClass *isa = ISA_DEVICE_CLASS(klass); > > dc->realize = rtc_realizefn; > dc->reset = rtc_resetdev; > dc->vmsd = &vmstate_rtc; > + isa->build_aml = rtc_build_aml; > device_class_set_props(dc, mc146818rtc_properties); > } >