diff options
Diffstat (limited to 'drivers/acpi/sleep.c')
| -rw-r--r-- | drivers/acpi/sleep.c | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index c40fb2e81bbc..c11e3795431b 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c @@ -89,6 +89,7 @@ u32 acpi_target_system_state(void)  {  	return acpi_target_sleep_state;  } +EXPORT_SYMBOL_GPL(acpi_target_system_state);  static bool pwr_btn_event_pending; @@ -611,6 +612,22 @@ static const struct platform_suspend_ops acpi_suspend_ops_old = {  	.recover = acpi_pm_finish,  }; +static int acpi_freeze_begin(void) +{ +	acpi_scan_lock_acquire(); +	return 0; +} + +static void acpi_freeze_end(void) +{ +	acpi_scan_lock_release(); +} + +static const struct platform_freeze_ops acpi_freeze_ops = { +	.begin = acpi_freeze_begin, +	.end = acpi_freeze_end, +}; +  static void acpi_sleep_suspend_setup(void)  {  	int i; @@ -621,7 +638,9 @@ static void acpi_sleep_suspend_setup(void)  	suspend_set_ops(old_suspend_ordering ?  		&acpi_suspend_ops_old : &acpi_suspend_ops); +	freeze_set_ops(&acpi_freeze_ops);  } +  #else /* !CONFIG_SUSPEND */  static inline void acpi_sleep_suspend_setup(void) {}  #endif /* !CONFIG_SUSPEND */ | 
