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 3/8] x86/acpi/sleep: Provide registration for acp

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, "linux-kernel@xxxxxxxxxxxxxxx" <linux-kernel@xxxxxxxxxxxxxxx>, "rjw@xxxxxxx" <rjw@xxxxxxx>, "tglx@xxxxxxxxxxxxx" <tglx@xxxxxxxxxxxxx>, "hpa@xxxxxxxxx" <hpa@xxxxxxxxx>, "x86@xxxxxxxxxx" <x86@xxxxxxxxxx>, "Brown, Len" <len.brown@xxxxxxxxx>, "Wang, Shane" <shane.wang@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx" <linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx>, "tboot-devel@xxxxxxxxxxxxxxxxxxxxx" <tboot-devel@xxxxxxxxxxxxxxxxxxxxx>, "linux-acpi@xxxxxxxxxxxxxxx" <linux-acpi@xxxxxxxxxxxxxxx>, "liang.tang@xxxxxxxxxx" <liang.tang@xxxxxxxxxx>, "Yu, Ke" <ke.yu@xxxxxxxxx>, "Tian, Kevin" <kevin.tian@xxxxxxxxx>, "jeremy@xxxxxxxx" <jeremy@xxxxxxxx>
Subject: [Xen-devel] RE: [PATCH 3/8] x86/acpi/sleep: Provide registration for acpi_suspend_lowlevel.
From: "Cihula, Joseph" <joseph.cihula@xxxxxxxxx>
Date: Thu, 29 Sep 2011 20:30:36 +0000
Accept-language: en-US
Cc:
Delivery-date: Thu, 29 Sep 2011 13:31:53 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1317327414-24072-4-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: <1317327414-24072-1-git-send-email-konrad.wilk@xxxxxxxxxx> <1317327414-24072-4-git-send-email-konrad.wilk@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AQHMfuTWyLtvImwM7EyberMoVXrmdJVkz30Q
Thread-topic: [PATCH 3/8] x86/acpi/sleep: Provide registration for acpi_suspend_lowlevel.
ACK

> -----Original Message-----
> From: Konrad Rzeszutek Wilk [mailto:konrad.wilk@xxxxxxxxxx]
> Sent: Thursday, September 29, 2011 1:17 PM
> To: linux-kernel@xxxxxxxxxxxxxxx; rjw@xxxxxxx; tglx@xxxxxxxxxxxxx; 
> hpa@xxxxxxxxx; x86@xxxxxxxxxx;
> Brown, Len; Cihula, Joseph; Wang, Shane; xen-devel@xxxxxxxxxxxxxxxxxxx; 
> linux-pm@xxxxxxxxxxxx
> foundation.org; tboot-devel@xxxxxxxxxxxxxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx;
> liang.tang@xxxxxxxxxx; Yu, Ke; Tian, Kevin; jeremy@xxxxxxxx
> Cc: Konrad Rzeszutek Wilk
> Subject: [PATCH 3/8] x86/acpi/sleep: Provide registration for 
> acpi_suspend_lowlevel.
> 
> From: Liang Tang <liang.tang@xxxxxxxxxx>
> 
> Which by default will be x86_acpi_suspend_lowlevel.
> This registration allows us to register another callback if there is a need 
> to use another
> platform specific callback.
> 
> CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> CC: "H. Peter Anvin" <hpa@xxxxxxxxx>
> CC: x86@xxxxxxxxxx
> CC: Len Brown <len.brown@xxxxxxxxx>
> CC: Joseph Cihula <joseph.cihula@xxxxxxxxx>
> CC: Shane Wang <shane.wang@xxxxxxxxx>
> CC: linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
> CC: linux-acpi@xxxxxxxxxxxxxxx
> CC: Len Brown <len.brown@xxxxxxxxx>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Signed-off-by: Liang Tang <liang.tang@xxxxxxxxxx>
> ---
>  arch/x86/include/asm/acpi.h  |    2 +-
>  arch/x86/kernel/acpi/boot.c  |    2 ++
>  arch/x86/kernel/acpi/sleep.c |    4 ++--
>  arch/x86/kernel/acpi/sleep.h |    2 ++
>  drivers/acpi/sleep.c         |    2 ++
>  5 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h index 
> 0a46696..9b538dc
> 100644
> --- a/arch/x86/include/asm/acpi.h
> +++ b/arch/x86/include/asm/acpi.h
> @@ -119,7 +119,7 @@ static inline void acpi_disable_pci(void)  }
> 
>  /* Low-level suspend routine. */
> -extern int acpi_suspend_lowlevel(void);
> +extern int (*acpi_suspend_lowlevel)(void);
> 
>  extern const unsigned char acpi_wakeup_code[];  #define acpi_wakeup_address
> (__pa(TRAMPOLINE_SYM(acpi_wakeup_code)))
> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 
> 7f30806..ddd081b
> 100644
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -44,6 +44,7 @@
>  #include <asm/mpspec.h>
>  #include <asm/smp.h>
> 
> +#include "sleep.h" /* To include x86_acpi_suspend_lowlevel */
>  static int __initdata acpi_force = 0;
>  u32 acpi_rsdt_forced;
>  int acpi_disabled;
> @@ -556,6 +557,7 @@ int (*__acpi_override_sleep)(u8 sleep_state, u32 
> pm1a_ctrl,
>                            u32 pm1b_ctrl, bool *skip_rest) \
>                          __attribute__ ((unused)) = NULL;
> 
> +int (*acpi_suspend_lowlevel)(void) = x86_acpi_suspend_lowlevel;
>  /*
>   * success: return IRQ number (>=0)
>   * failure: return < 0
> diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c 
> index 103b6ab..4d2d0b1
> 100644
> --- a/arch/x86/kernel/acpi/sleep.c
> +++ b/arch/x86/kernel/acpi/sleep.c
> @@ -25,12 +25,12 @@ static char temp_stack[4096];  #endif
> 
>  /**
> - * acpi_suspend_lowlevel - save kernel state
> + * x86_acpi_suspend_lowlevel - save kernel state
>   *
>   * Create an identity mapped page table and copy the wakeup routine to
>   * low memory.
>   */
> -int acpi_suspend_lowlevel(void)
> +int x86_acpi_suspend_lowlevel(void)
>  {
>       struct wakeup_header *header;
>       /* address in low memory of the wakeup routine. */ diff --git 
> a/arch/x86/kernel/acpi/sleep.h
> b/arch/x86/kernel/acpi/sleep.h index 416d4be..4d3feb5 100644
> --- a/arch/x86/kernel/acpi/sleep.h
> +++ b/arch/x86/kernel/acpi/sleep.h
> @@ -13,3 +13,5 @@ extern unsigned long acpi_copy_wakeup_routine(unsigned 
> long);  extern void
> wakeup_long64(void);
> 
>  extern void do_suspend_lowlevel(void);
> +
> +extern int x86_acpi_suspend_lowlevel(void);
> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 
> 3ed80b2..3570c00 100644
> --- a/drivers/acpi/sleep.c
> +++ b/drivers/acpi/sleep.c
> @@ -254,6 +254,8 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
>               break;
> 
>       case ACPI_STATE_S3:
> +             if (!acpi_suspend_lowlevel)
> +                     return -ENODEV;
>               error = acpi_suspend_lowlevel();
>               if (error)
>                       return error;
> --
> 1.7.4.1


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