WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] RE: [PATCH 6/7] xen/acpi/sleep: Enable ACPI sleep via the __

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, "x86@xxxxxxxxxx" <x86@xxxxxxxxxx>, "tglx@xxxxxxxxxxxxx" <tglx@xxxxxxxxxxxxx>, "tboot-devel@xxxxxxxxxxxxxxxxxxxxx" <tboot-devel@xxxxxxxxxxxxxxxxxxxxx>, "Wang, Shane" <shane.wang@xxxxxxxxx>, "linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx" <linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx>, "linux-acpi@xxxxxxxxxxxxxxx" <linux-acpi@xxxxxxxxxxxxxxx>, "Brown, Len" <len.brown@xxxxxxxxx>, "hpa@xxxxxxxxx" <hpa@xxxxxxxxx>, "Yu, Ke" <ke.yu@xxxxxxxxx>, "liang.tang@xxxxxxxxxx" <liang.tang@xxxxxxxxxx>, "Tian, Kevin" <kevin.tian@xxxxxxxxx>, "keir@xxxxxxx" <keir@xxxxxxx>
Subject: [Xen-devel] RE: [PATCH 6/7] xen/acpi/sleep: Enable ACPI sleep via the __acpi_override_sleep
From: "Cihula, Joseph" <joseph.cihula@xxxxxxxxx>
Date: Wed, 7 Sep 2011 04:36:49 +0000
Accept-language: en-US
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 06 Sep 2011 21:37:27 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1314815484-4668-7-git-send-email-konrad.wilk@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1314815484-4668-1-git-send-email-konrad.wilk@xxxxxxxxxx> <1314815484-4668-7-git-send-email-konrad.wilk@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AQHMaAxA4F/ZCpv8PUCD6otPeC7MhpVBXsng
Thread-topic: [PATCH 6/7] xen/acpi/sleep: Enable ACPI sleep via the __acpi_override_sleep
> From: Konrad Rzeszutek Wilk [mailto:konrad.wilk@xxxxxxxxxx]
> Sent: Wednesday, August 31, 2011 11:31 AM
> 
> Provide the registration callback to call in the Xen's ACPI sleep 
> functionality. This means that
> during S3/S5 we make a hypercall XENPF_enter_acpi_sleep with the proper 
> PM1A/PM1B registers.
> 
> Based of Ke Yu's <ke.yu@xxxxxxxxx> initial idea.
> [ From http://xenbits.xensource.com/linux-2.6.18-xen.hg
> change c68699484a65 ]
> 
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> ---
>  arch/x86/include/asm/xen/hypercall.h |    8 ++++++++
>  arch/x86/xen/enlighten.c             |    3 +++
>  drivers/xen/Makefile                 |    2 +-
>  drivers/xen/acpi.c                   |   25 +++++++++++++++++++++++++
>  include/xen/acpi.h                   |   26 ++++++++++++++++++++++++++
>  5 files changed, 63 insertions(+), 1 deletions(-)  create mode 100644 
> drivers/xen/acpi.c  create
> mode 100644 include/xen/acpi.h
> 
> diff --git a/arch/x86/include/asm/xen/hypercall.h 
> b/arch/x86/include/asm/xen/hypercall.h
> index d240ea9..0c9894e 100644
> --- a/arch/x86/include/asm/xen/hypercall.h
> +++ b/arch/x86/include/asm/xen/hypercall.h
> @@ -45,6 +45,7 @@
>  #include <xen/interface/xen.h>
>  #include <xen/interface/sched.h>
>  #include <xen/interface/physdev.h>
> +#include <xen/interface/platform.h>
> 
>  /*
>   * The hypercall asms have to meet several constraints:
> @@ -299,6 +300,13 @@ HYPERVISOR_set_timer_op(u64 timeout)  }
> 
>  static inline int
> +HYPERVISOR_dom0_op(struct xen_platform_op *platform_op) {
> +     platform_op->interface_version = XENPF_INTERFACE_VERSION;
> +     return _hypercall1(int, dom0_op, platform_op); }
> +
> +static inline int
>  HYPERVISOR_set_debugreg(int reg, unsigned long value)  {
>       return _hypercall2(int, set_debugreg, reg, value); diff --git 
> a/arch/x86/xen/enlighten.c
> b/arch/x86/xen/enlighten.c index 5525163..6962653 100644
> --- a/arch/x86/xen/enlighten.c
> +++ b/arch/x86/xen/enlighten.c
> @@ -42,6 +42,7 @@
>  #include <xen/page.h>
>  #include <xen/hvm.h>
>  #include <xen/hvc-console.h>
> +#include <xen/acpi.h>
> 
>  #include <asm/paravirt.h>
>  #include <asm/apic.h>
> @@ -1250,6 +1251,8 @@ asmlinkage void __init xen_start_kernel(void)
>       } else {
>               /* Make sure ACS will be enabled */
>               pci_request_acs();
> +
> +             xen_acpi_sleep_register();
>       }
> 
> 
> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile index 
> bbc1825..370552d 100644
> --- a/drivers/xen/Makefile
> +++ b/drivers/xen/Makefile
> @@ -16,7 +16,7 @@ obj-$(CONFIG_XENFS)                 += xenfs/
>  obj-$(CONFIG_XEN_SYS_HYPERVISOR)     += sys-hypervisor.o
>  obj-$(CONFIG_XEN_PLATFORM_PCI)               += xen-platform-pci.o
>  obj-$(CONFIG_SWIOTLB_XEN)            += swiotlb-xen.o
> -obj-$(CONFIG_XEN_DOM0)                       += pci.o
> +obj-$(CONFIG_XEN_DOM0)                       += pci.o acpi.o
> 
>  xen-evtchn-y                         := evtchn.o
>  xen-gntdev-y                         := gntdev.o
> diff --git a/drivers/xen/acpi.c b/drivers/xen/acpi.c new file mode 100644 
> index 0000000..c0f829f
> --- /dev/null
> +++ b/drivers/xen/acpi.c
> @@ -0,0 +1,25 @@

Copyright and license?

> +#include <xen/acpi.h>
> +#include <xen/interface/platform.h>
> +#include <asm/xen/hypercall.h>
> +#include <asm/xen/hypervisor.h>
> +
> +int xen_acpi_notify_hypervisor_state(u8 sleep_state,
> +                                  u32 pm1a_cnt, u32 pm1b_cnt,
> +                                  bool *skip_rest)
> +{
> +     struct xen_platform_op op = {
> +             .cmd = XENPF_enter_acpi_sleep,
> +             .interface_version = XENPF_INTERFACE_VERSION,
> +             .u = {
> +                     .enter_acpi_sleep = {
> +                             .pm1a_cnt_val = (u16)pm1a_cnt,
> +                             .pm1b_cnt_val = (u16)pm1b_cnt,
> +                             .sleep_state = sleep_state,
> +                     },
> +             },
> +     };
> +     if (skip_rest)
> +             *skip_rest = true;
> +
> +     return HYPERVISOR_dom0_op(&op);
> +}
> diff --git a/include/xen/acpi.h b/include/xen/acpi.h new file mode 100644 
> index 0000000..e414f14
> --- /dev/null
> +++ b/include/xen/acpi.h
> @@ -0,0 +1,26 @@

Copyright and license?

> +#ifndef _XEN_ACPI_H
> +#define _XEN_ACPI_H
> +
> +#include <linux/types.h>
> +
> +#ifdef CONFIG_XEN_DOM0
> +#include <asm/xen/hypervisor.h>
> +#include <xen/xen.h>
> +#include <linux/acpi.h>
> +
> +int xen_acpi_notify_hypervisor_state(u8 sleep_state,
> +                                  u32 pm1a_cnt, u32 pm1b_cnd,
> +                                  bool *skip_rest);
> +
> +static inline void xen_acpi_sleep_register(void) {
> +     if (xen_initial_domain())
> +             __acpi_override_sleep = xen_acpi_notify_hypervisor_state; } 
> #else
> +static inline void xen_acpi_sleep_register(void) { } #endif
> +
> +#endif       /* _XEN_ACPI_H */
> --
> 1.7.4.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] RE: [PATCH 6/7] xen/acpi/sleep: Enable ACPI sleep via the __acpi_override_sleep, Cihula, Joseph <=