blob: 3b6fd02055eb044dd8f01b7c58ea7ddb87400ad1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/* SPDX-License-Identifier: GPL-2.0-only */
/* Wake status package */
Name(WKST,Package(){Zero, Zero})
/*
* \_PTS - Prepare to Sleep method
*
* Entry:
* Arg0=The value of the sleeping state S1=1, S2=2, etc
*
* Exit:
* -none-
*
* The _PTS control method is executed at the beginning of the sleep process
* for S1-S5. The sleeping value is passed to the _PTS control method. This
* control method may be executed a relatively long time before entering the
* sleep state and the OS may abort the operation without notification to
* the ACPI driver. This method cannot modify the configuration or power
* state of any device in the system.
*/
Method(\_PTS, 1) {
/* DBGO("\\_PTS\n") */
/* DBGO("From S0 to S") */
/* DBGO(Arg0) */
/* DBGO("\n") */
/* Don't allow PCIRST# to reset USB */
if (Arg0 == 3){
URRE = 0
}
/* Clear sleep SMI status flag and enable sleep SMI trap. */
/*CSSM = 1
SSEN = 1*/
/* On older chips, clear PciExpWakeDisEn */
/*if (\_SB.SBRI <= 0x13) {
* \_SB.PWDE = 0
*}
*/
/* Clear wake status structure. */
WKST [0] = 0
WKST [1] = 0
} /* End Method(\_PTS) */
/*
* \_WAK System Wake method
*
* Entry:
* Arg0=The value of the sleeping state S1=1, S2=2
*
* Exit:
* Return package of 2 DWords
* Dword 1 - Status
* 0x00000000 wake succeeded
* 0x00000001 Wake was signaled but failed due to lack of power
* 0x00000002 Wake was signaled but failed due to thermal condition
* Dword 2 - Power Supply state
* if non-zero the effective S-state the power supply entered
*/
Method(\_WAK, 1) {
/* DBGO("\\_WAK\n") */
/* DBGO("From S") */
/* DBGO(Arg0) */
/* DBGO(" to S0\n") */
/* Re-enable HPET */
HPDE = 1
/* Restore PCIRST# so it resets USB */
if (Arg0 == 3){
URRE = 1
}
/* Arbitrarily clear PciExpWakeStatus */
Local1 = PWST
PWST = Local1
/* if (DeRefOf(WKST [0])) {
* WKST [1] = 0
* } else {
* WKST [1] = Arg0
* }
*/
Return(WKST)
} /* End Method(\_WAK) */
|