diff options
author | Len Brown <len.brown@intel.com> | 2012-03-30 16:35:53 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-03-30 16:38:59 -0400 |
commit | d326f44e5f2204c7a24db69bfc6dd3fe5f86182b (patch) | |
tree | 21473db646b06fd462bbc8f3690732ba1bb2d018 /drivers/acpi | |
parent | ec612fcf43e09f5e05d37baf4d3f138b3fcc2f3d (diff) | |
parent | e840dfe334b4791af07aadee1b2cf3c7c7363581 (diff) | |
download | linux-d326f44e5f2204c7a24db69bfc6dd3fe5f86182b.tar.gz linux-d326f44e5f2204c7a24db69bfc6dd3fe5f86182b.tar.bz2 linux-d326f44e5f2204c7a24db69bfc6dd3fe5f86182b.zip |
Merge branch 'tboot' into release
Conflicts:
drivers/acpi/acpica/hwsleep.c
Text conflict between:
2feec47d4c5f80b05f1650f5a24865718978eea4
(ACPICA: ACPI 5: Support for new FADT SleepStatus, SleepControl registers)
which removed #include "actables.h"
and
09f98a825a821f7a3f1b162f9ed023f37213a63b
(x86, acpi, tboot: Have a ACPI os prepare sleep instead of calling tboot_sleep.)
which removed #include <linux/tboot.h>
The resolution is to remove them both.
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/acpica/hwsleep.c | 10 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 24 |
2 files changed, 31 insertions, 3 deletions
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c index 8ab325cefa68..0ed85cac3231 100644 --- a/drivers/acpi/acpica/hwsleep.c +++ b/drivers/acpi/acpica/hwsleep.c @@ -43,8 +43,8 @@ */ #include <acpi/acpi.h> +#include <linux/acpi.h> #include "accommon.h" -#include <linux/tboot.h> #include <linux/module.h> #define _COMPONENT ACPI_HARDWARE @@ -172,8 +172,12 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state, u8 flags) ACPI_FLUSH_CPU_CACHE(); - tboot_sleep(sleep_state, pm1a_control, pm1b_control); - + status = acpi_os_prepare_sleep(sleep_state, pm1a_control, + pm1b_control); + if (ACPI_SKIP(status)) + return_ACPI_STATUS(AE_OK); + if (ACPI_FAILURE(status)) + return_ACPI_STATUS(status); /* Write #2: Write both SLP_TYP + SLP_EN */ status = acpi_hw_write_pm1_control(pm1a_control, pm1b_control); diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 9fddb55764f3..ba14fb93c929 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -77,6 +77,9 @@ EXPORT_SYMBOL(acpi_in_debugger); extern char line_buf[80]; #endif /*ENABLE_DEBUGGER */ +static int (*__acpi_os_prepare_sleep)(u8 sleep_state, u32 pm1a_ctrl, + u32 pm1b_ctrl); + static acpi_osd_handler acpi_irq_handler; static void *acpi_irq_context; static struct workqueue_struct *kacpid_wq; @@ -1569,3 +1572,24 @@ acpi_status acpi_os_terminate(void) return AE_OK; } + +acpi_status acpi_os_prepare_sleep(u8 sleep_state, u32 pm1a_control, + u32 pm1b_control) +{ + int rc = 0; + if (__acpi_os_prepare_sleep) + rc = __acpi_os_prepare_sleep(sleep_state, + pm1a_control, pm1b_control); + if (rc < 0) + return AE_ERROR; + else if (rc > 0) + return AE_CTRL_SKIP; + + return AE_OK; +} + +void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state, + u32 pm1a_ctrl, u32 pm1b_ctrl)) +{ + __acpi_os_prepare_sleep = func; +} |