[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [Qemu-devel] [PATCH V9 16/16] acpi-piix4: Add Xen hypercall for sleep state.
On Tue, Jan 25, 2011 at 02:29:20PM +0000, anthony.perard@xxxxxxxxxx wrote: > From: Anthony PERARD <anthony.perard@xxxxxxxxxx> > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > --- > hw/acpi_piix4.c | 4 ++++ > hw/xen.h | 2 ++ > xen-all.c | 7 +++++++ > xen-stub.c | 4 ++++ > 4 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c > index 5bbc2b5..ea94bf9 100644 > --- a/hw/acpi_piix4.c > +++ b/hw/acpi_piix4.c > @@ -23,6 +23,7 @@ > #include "acpi.h" > #include "sysemu.h" > #include "range.h" > +#include "xen.h" > > //#define DEBUG > > @@ -181,6 +182,9 @@ static void pm_ioport_write(IORange *ioport, uint64_t > addr, unsigned width, > if (s->cmos_s3) { > qemu_irq_raise(s->cmos_s3); > } > + if (xen_enabled()) { > + xen_set_hvm_sleep_state(); > + } > default: > break; > } Why not utilize cmos_s3 callback? Something like - cmos_s3 = qemu_allocate_irqs(pc_cmos_set_s3_resume, rtc_state, 1); + cmos_s3 = qemu_allocate_irqs(xen_cmos_set_s3_resume, rtc_state, 1); smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100, isa_reserve_irq(9), *cmos_s3, *smi_irq, kvm_enabled()); xen_cmos_set_s3_resume() pc_cmos_set_s3_resume() xen_set_hvm_sleep_state() thanks, > diff --git a/hw/xen.h b/hw/xen.h > index dd3fb68..8920550 100644 > --- a/hw/xen.h > +++ b/hw/xen.h > @@ -44,6 +44,8 @@ int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); > void xen_piix3_set_irq(void *opaque, int irq_num, int level); > void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int > len); > > +void xen_set_hvm_sleep_state(void); > + > int xen_init(int smp_cpus); > > #if defined(NEED_CPU_H) && !defined(CONFIG_USER_ONLY) > diff --git a/xen-all.c b/xen-all.c > index c2d37d6..86ebfcb 100644 > --- a/xen-all.c > +++ b/xen-all.c > @@ -464,6 +464,13 @@ static void xen_main_loop_prepare(XenIOState *state) > } > > > +/* ACPI */ > + > +void xen_set_hvm_sleep_state(void) > +{ > + xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 3); > +} > + > /* Initialise Xen */ > > static void xen_vm_change_state_handler(void *opaque, int running, int > reason) > diff --git a/xen-stub.c b/xen-stub.c > index c9f477d..d22f475 100644 > --- a/xen-stub.c > +++ b/xen-stub.c > @@ -28,6 +28,10 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size) > { > } > > +void xen_set_hvm_sleep_state(void) > +{ > +} > + > int xen_init(int smp_cpus) > { > return -ENOSYS; > -- > 1.7.1 > > -- yamahata _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |