diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-02-08 17:42:22 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-02-24 13:58:54 -0500 |
commit | f1a2003e22f6b50ea21f7f4b38b38c5ebc9c8017 (patch) | |
tree | 5317a7133739f2f352d2cde56213caeab5cf12ac | |
parent | 979f11b060c0b35b03b86ae854d6f21a710305d0 (diff) |
ACPI / PM: Merge do_suspend_lowlevel() into acpi_save_state_mem()
The function do_suspend_lowlevel() is specific to x86 and defined in
assembly code, so it should be called from the x86 low-level suspend
code rather than from acpi_suspend_enter().
Merge do_suspend_lowlevel() into the x86's acpi_save_state_mem() and
change the name of the latter to acpi_suspend_lowlevel(), so that the
function's purpose is better reflected by its name.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-rw-r--r-- | arch/ia64/include/asm/acpi.h | 4 | ||||
-rw-r--r-- | arch/ia64/kernel/acpi.c | 9 | ||||
-rw-r--r-- | arch/x86/include/asm/acpi.h | 4 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/sleep.c | 5 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/sleep.h | 2 | ||||
-rw-r--r-- | drivers/acpi/sleep.c | 5 |
6 files changed, 12 insertions, 17 deletions
diff --git a/arch/ia64/include/asm/acpi.h b/arch/ia64/include/asm/acpi.h index db3986a71af8..a06dfb13d518 100644 --- a/arch/ia64/include/asm/acpi.h +++ b/arch/ia64/include/asm/acpi.h | |||
@@ -128,8 +128,8 @@ static inline const char *acpi_get_sysname (void) | |||
128 | int acpi_request_vector (u32 int_type); | 128 | int acpi_request_vector (u32 int_type); |
129 | int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); | 129 | int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); |
130 | 130 | ||
131 | /* Routine for saving kernel state during suspend. */ | 131 | /* Low-level suspend routine. */ |
132 | extern int acpi_save_state_mem(void); | 132 | extern int acpi_suspend_lowlevel(void); |
133 | 133 | ||
134 | extern unsigned long acpi_wakeup_address; | 134 | extern unsigned long acpi_wakeup_address; |
135 | 135 | ||
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 7cf2d10c0677..a54d054ed4b0 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -1034,13 +1034,8 @@ int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base) | |||
1034 | EXPORT_SYMBOL(acpi_unregister_ioapic); | 1034 | EXPORT_SYMBOL(acpi_unregister_ioapic); |
1035 | 1035 | ||
1036 | /* | 1036 | /* |
1037 | * acpi_save_state_mem() - save kernel state | 1037 | * acpi_suspend_lowlevel() - save kernel state and suspend. |
1038 | * | 1038 | * |
1039 | * TBD when when IA64 starts to support suspend... | 1039 | * TBD when when IA64 starts to support suspend... |
1040 | */ | 1040 | */ |
1041 | int acpi_save_state_mem(void) { return 0; } | 1041 | int acpi_suspend_lowlevel(void) { return 0; } |
1042 | |||
1043 | /* | ||
1044 | * do_suspend_lowlevel() | ||
1045 | */ | ||
1046 | void do_suspend_lowlevel(void) {} | ||
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h index 47981f0d121b..aa92684aa674 100644 --- a/arch/x86/include/asm/acpi.h +++ b/arch/x86/include/asm/acpi.h | |||
@@ -112,8 +112,8 @@ static inline void acpi_disable_pci(void) | |||
112 | acpi_noirq_set(); | 112 | acpi_noirq_set(); |
113 | } | 113 | } |
114 | 114 | ||
115 | /* Routine for saving kernel state during suspend. */ | 115 | /* Low-level suspend routine. */ |
116 | extern int acpi_save_state_mem(void); | 116 | extern int acpi_suspend_lowlevel(void); |
117 | 117 | ||
118 | extern unsigned long acpi_wakeup_address; | 118 | extern unsigned long acpi_wakeup_address; |
119 | 119 | ||
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index c27a483094b1..5f1b747f6ef1 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c | |||
@@ -29,14 +29,14 @@ static char temp_stack[4096]; | |||
29 | #endif | 29 | #endif |
30 | 30 | ||
31 | /** | 31 | /** |
32 | * acpi_save_state_mem - save kernel state | 32 | * acpi_suspend_lowlevel - save kernel state |
33 | * | 33 | * |
34 | * Create an identity mapped page table and copy the wakeup routine to | 34 | * Create an identity mapped page table and copy the wakeup routine to |
35 | * low memory. | 35 | * low memory. |
36 | * | 36 | * |
37 | * Note that this is too late to change acpi_wakeup_address. | 37 | * Note that this is too late to change acpi_wakeup_address. |
38 | */ | 38 | */ |
39 | int acpi_save_state_mem(void) | 39 | int acpi_suspend_lowlevel(void) |
40 | { | 40 | { |
41 | struct wakeup_header *header; | 41 | struct wakeup_header *header; |
42 | 42 | ||
@@ -107,6 +107,7 @@ int acpi_save_state_mem(void) | |||
107 | saved_magic = 0x123456789abcdef0L; | 107 | saved_magic = 0x123456789abcdef0L; |
108 | #endif /* CONFIG_64BIT */ | 108 | #endif /* CONFIG_64BIT */ |
109 | 109 | ||
110 | do_suspend_lowlevel(); | ||
110 | return 0; | 111 | return 0; |
111 | } | 112 | } |
112 | 113 | ||
diff --git a/arch/x86/kernel/acpi/sleep.h b/arch/x86/kernel/acpi/sleep.h index adbcbaa6f1df..31ce13f20297 100644 --- a/arch/x86/kernel/acpi/sleep.h +++ b/arch/x86/kernel/acpi/sleep.h | |||
@@ -14,3 +14,5 @@ extern char swsusp_pg_dir[PAGE_SIZE]; | |||
14 | 14 | ||
15 | extern unsigned long acpi_copy_wakeup_routine(unsigned long); | 15 | extern unsigned long acpi_copy_wakeup_routine(unsigned long); |
16 | extern void wakeup_long64(void); | 16 | extern void wakeup_long64(void); |
17 | |||
18 | extern void do_suspend_lowlevel(void); | ||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 2307604064b3..0a81bf11f473 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -199,8 +199,6 @@ static void acpi_pm_end(void) | |||
199 | #endif /* CONFIG_ACPI_SLEEP */ | 199 | #endif /* CONFIG_ACPI_SLEEP */ |
200 | 200 | ||
201 | #ifdef CONFIG_SUSPEND | 201 | #ifdef CONFIG_SUSPEND |
202 | extern void do_suspend_lowlevel(void); | ||
203 | |||
204 | static u32 acpi_suspend_states[] = { | 202 | static u32 acpi_suspend_states[] = { |
205 | [PM_SUSPEND_ON] = ACPI_STATE_S0, | 203 | [PM_SUSPEND_ON] = ACPI_STATE_S0, |
206 | [PM_SUSPEND_STANDBY] = ACPI_STATE_S1, | 204 | [PM_SUSPEND_STANDBY] = ACPI_STATE_S1, |
@@ -255,10 +253,9 @@ static int acpi_suspend_enter(suspend_state_t pm_state) | |||
255 | break; | 253 | break; |
256 | 254 | ||
257 | case ACPI_STATE_S3: | 255 | case ACPI_STATE_S3: |
258 | error = acpi_save_state_mem(); | 256 | error = acpi_suspend_lowlevel(); |
259 | if (error) | 257 | if (error) |
260 | return error; | 258 | return error; |
261 | do_suspend_lowlevel(); | ||
262 | pr_info(PREFIX "Low-level resume complete\n"); | 259 | pr_info(PREFIX "Low-level resume complete\n"); |
263 | break; | 260 | break; |
264 | } | 261 | } |