aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/idle/mrst_s0i3_asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/idle/mrst_s0i3_asm.S')
-rw-r--r--drivers/idle/mrst_s0i3_asm.S7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/idle/mrst_s0i3_asm.S b/drivers/idle/mrst_s0i3_asm.S
index 10872fa4a3c..4561a53c347 100644
--- a/drivers/idle/mrst_s0i3_asm.S
+++ b/drivers/idle/mrst_s0i3_asm.S
@@ -37,7 +37,9 @@ ENTRY(mrst_s0i3_entry)
pushl %ebp
pushl %ebx
- movl %esp, %esi
+ movl %esp, %ebp
+ movl %eax, %esi /* Command code to write to PM_CMD */
+ movl %edx, %edi /* Linear address of the PM_CMD register */
sldt %eax
pushl %eax
@@ -89,13 +91,14 @@ ENTRY(mrst_s0i3_entry)
movl $MRST_C6_HINTS_EAX, %eax
movl $MRST_C6_HINTS_ECX, %ecx
+ movl %esi, (%edi)
sti
mwait
/* If MWAIT wakes us up, assume something happened... */
cli
/* jmp simulate_resume */
- movl %esi, %esp
+ movl %ebp, %esp
xorl %eax, %eax /* Not really S0i3 */
popl %ebx