Update olpc target kernel to 2.26.5.
[openwrt/openwrt.git] / target / linux / olpc / files-2.6.23 / arch / i386 / kernel / olpc-sleep.S
1 .text
2
3 ENTRY(olpc_sleep_asm)
4 olpc_sleep:
5 ;; Get the value of PM1_CNT and store it off
6
7 add 08h, ax
8 mov bx,dx
9 in dx,eax
10 or 2000h, ax
11 mov ax,di
12
13 ;; flush the cache
14 wbinvd
15
16 ;; GX2 must disable refresh before going into self-refresh
17 mov 2000000180xh, ecx
18 rdmsr
19 mov eax, esi
20 and 0FF0000FFh, eax
21 wrmsr
22
23 ;; Now, put the memory into self refresh
24 mov 2004, cx
25 xor edx, edx
26 xor eax, eax
27 mov 04h, al
28 wrmsr
29
30 ;; Thats all she wrote - time to go to sleep
31
32 mov bx, dx
33 movzx di, eax
34 out eax, dx
35
36 ;;
37
38
39