diff options
Diffstat (limited to 'arch/i386/kernel/acpi/sleep.c')
-rw-r--r-- | arch/i386/kernel/acpi/sleep.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/i386/kernel/acpi/sleep.c b/arch/i386/kernel/acpi/sleep.c index 28bb0514bb6e..c1af93032ff3 100644 --- a/arch/i386/kernel/acpi/sleep.c +++ b/arch/i386/kernel/acpi/sleep.c | |||
@@ -7,6 +7,7 @@ | |||
7 | 7 | ||
8 | #include <linux/acpi.h> | 8 | #include <linux/acpi.h> |
9 | #include <linux/bootmem.h> | 9 | #include <linux/bootmem.h> |
10 | #include <linux/dmi.h> | ||
10 | #include <asm/smp.h> | 11 | #include <asm/smp.h> |
11 | #include <asm/tlbflush.h> | 12 | #include <asm/tlbflush.h> |
12 | 13 | ||
@@ -91,3 +92,29 @@ static int __init acpi_sleep_setup(char *str) | |||
91 | 92 | ||
92 | 93 | ||
93 | __setup("acpi_sleep=", acpi_sleep_setup); | 94 | __setup("acpi_sleep=", acpi_sleep_setup); |
95 | |||
96 | |||
97 | static __init int reset_videomode_after_s3(struct dmi_system_id *d) | ||
98 | { | ||
99 | acpi_video_flags |= 2; | ||
100 | return 0; | ||
101 | } | ||
102 | |||
103 | static __initdata struct dmi_system_id acpisleep_dmi_table[] = { | ||
104 | { /* Reset video mode after returning from ACPI S3 sleep */ | ||
105 | .callback = reset_videomode_after_s3, | ||
106 | .ident = "Toshiba Satellite 4030cdt", | ||
107 | .matches = { | ||
108 | DMI_MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"), | ||
109 | }, | ||
110 | }, | ||
111 | { } | ||
112 | }; | ||
113 | |||
114 | static int __init acpisleep_dmi_init(void) | ||
115 | { | ||
116 | dmi_check_system(acpisleep_dmi_table); | ||
117 | return 0; | ||
118 | } | ||
119 | |||
120 | core_initcall(acpisleep_dmi_init); | ||