xen / ACPI: notify xen when reduced hardware sleep is available
Use the acpi_os_prepare_extended_sleep() callback to notify xen to make use of the reduced hardware sleep functionality The xen hypervisor change underlying this is commit 62d1a69 ("ACPI: support v5 (reduced HW) sleep interface") on the master branch of git://xenbits.xen.org/xen.git. Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Ben Guthro <benjamin.guthro@citrix.com> Acked-by: Konrad Wilk <konrad.wilk@oracle.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:

committed by
Rafael J. Wysocki

parent
d6b47b1224
commit
be6b25d15f
@@ -75,8 +75,10 @@ static inline int xen_acpi_get_pxm(acpi_handle h)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
int xen_acpi_notify_hypervisor_state(u8 sleep_state,
|
||||
int xen_acpi_notify_hypervisor_sleep(u8 sleep_state,
|
||||
u32 pm1a_cnt, u32 pm1b_cnd);
|
||||
int xen_acpi_notify_hypervisor_extended_sleep(u8 sleep_state,
|
||||
u32 val_a, u32 val_b);
|
||||
|
||||
static inline int xen_acpi_suspend_lowlevel(void)
|
||||
{
|
||||
@@ -93,7 +95,9 @@ static inline void xen_acpi_sleep_register(void)
|
||||
{
|
||||
if (xen_initial_domain()) {
|
||||
acpi_os_set_prepare_sleep(
|
||||
&xen_acpi_notify_hypervisor_state);
|
||||
&xen_acpi_notify_hypervisor_sleep);
|
||||
acpi_os_set_prepare_extended_sleep(
|
||||
&xen_acpi_notify_hypervisor_extended_sleep);
|
||||
|
||||
acpi_suspend_lowlevel = xen_acpi_suspend_lowlevel;
|
||||
}
|
||||
|
@@ -152,10 +152,11 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_firmware_info_t);
|
||||
#define XENPF_enter_acpi_sleep 51
|
||||
struct xenpf_enter_acpi_sleep {
|
||||
/* IN variables */
|
||||
uint16_t pm1a_cnt_val; /* PM1a control value. */
|
||||
uint16_t pm1b_cnt_val; /* PM1b control value. */
|
||||
uint16_t val_a; /* PM1a control / sleep type A. */
|
||||
uint16_t val_b; /* PM1b control / sleep type B. */
|
||||
uint32_t sleep_state; /* Which state to enter (Sn). */
|
||||
uint32_t flags; /* Must be zero. */
|
||||
#define XENPF_ACPI_SLEEP_EXTENDED 0x00000001
|
||||
uint32_t flags; /* XENPF_ACPI_SLEEP_*. */
|
||||
};
|
||||
DEFINE_GUEST_HANDLE_STRUCT(xenpf_enter_acpi_sleep_t);
|
||||
|
||||
|
Reference in New Issue
Block a user