aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/osl.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/osl.c')
-rw-r--r--drivers/acpi/osl.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index f31c5c5f1b7e..f3aae4ba507e 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -76,6 +76,9 @@ EXPORT_SYMBOL(acpi_in_debugger);
76extern char line_buf[80]; 76extern char line_buf[80];
77#endif /*ENABLE_DEBUGGER */ 77#endif /*ENABLE_DEBUGGER */
78 78
79static int (*__acpi_os_prepare_sleep)(u8 sleep_state, u32 pm1a_ctrl,
80 u32 pm1b_ctrl);
81
79static acpi_osd_handler acpi_irq_handler; 82static acpi_osd_handler acpi_irq_handler;
80static void *acpi_irq_context; 83static void *acpi_irq_context;
81static struct workqueue_struct *kacpid_wq; 84static struct workqueue_struct *kacpid_wq;
@@ -1659,3 +1662,24 @@ acpi_status acpi_os_terminate(void)
1659 1662
1660 return AE_OK; 1663 return AE_OK;
1661} 1664}
1665
1666acpi_status acpi_os_prepare_sleep(u8 sleep_state, u32 pm1a_control,
1667 u32 pm1b_control)
1668{
1669 int rc = 0;
1670 if (__acpi_os_prepare_sleep)
1671 rc = __acpi_os_prepare_sleep(sleep_state,
1672 pm1a_control, pm1b_control);
1673 if (rc < 0)
1674 return AE_ERROR;
1675 else if (rc > 0)
1676 return AE_CTRL_SKIP;
1677
1678 return AE_OK;
1679}
1680
1681void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state,
1682 u32 pm1a_ctrl, u32 pm1b_ctrl))
1683{
1684 __acpi_os_prepare_sleep = func;
1685}