===================================================================
@@ -182,6 +182,12 @@ static void acpi_pm_end(void)
*/
static bool set_sci_en_on_resume;
+void __init acpi_set_sci_en_on_resume(void)
+{
+ set_sci_en_on_resume = true;
+ return 0;
+}
+
extern void do_suspend_lowlevel(void);
static u32 acpi_suspend_states[] = {
===================================================================
@@ -162,6 +162,10 @@ static int __init acpi_sleep_setup(char
#endif
if (strncmp(str, "old_ordering", 12) == 0)
acpi_old_suspend_ordering();
+#ifdef CONFIG_SUSPEND
+ if (strncmp(str, "s3_set_sci_en", 13) == 0)
+ acpi_set_sci_en_on_resume();
+#endif /* CONFIG_SUSPEND */
str = strchr(str, ',');
if (str != NULL)
str += strspn(str, ", \t");
===================================================================
@@ -251,6 +251,9 @@ int acpi_check_mem_region(resource_size_
void __init acpi_no_s4_hw_signature(void);
void __init acpi_old_suspend_ordering(void);
void __init acpi_s4_no_nvs(void);
+#ifdef CONFIG_SUSPEND
+void __init acpi_set_sci_en_on_resume(void);
+#endif /* CONFIG_SUSPEND*/
#endif /* CONFIG_PM_SLEEP */
#define OSC_QUERY_TYPE 0
===================================================================
@@ -241,7 +241,7 @@ and is between 256 and 4096 characters.
acpi_sleep= [HW,ACPI] Sleep options
Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
- old_ordering, s4_nonvs }
+ old_ordering, s4_nonvs, s3_set_sci_en }
See Documentation/power/video.txt for information on
s3_bios and s3_mode.
s3_beep is for debugging; it makes the PC's speaker beep
@@ -254,6 +254,9 @@ and is between 256 and 4096 characters.
of _PTS is used by default).
s4_nonvs prevents the kernel from saving/restoring the
ACPI NVS memory during hibernation.
+ s3_set_sci_en causes the kernel to set SCI_EN directly
+ on resume from S3 (which is against the ACPI specification,
+ but some broken systems don't work without it).
acpi_use_timer_override [HW,ACPI]
Use timer override. For some broken Nvidia NF5 boards