diff options
Diffstat (limited to 'drivers/idle/mrst_s0i3_asm.S')
-rw-r--r-- | drivers/idle/mrst_s0i3_asm.S | 7 |
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 |