summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ec/lenovo/h8/acpi/thinkpad.asl48
-rw-r--r--src/mainboard/lenovo/t400/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/t420s/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/t430/acpi/platform.asl4
-rw-r--r--src/mainboard/lenovo/t430s/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/t520/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/t530/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/t60/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/x200/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/x201/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/x220/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/x230/acpi/platform.asl3
-rw-r--r--src/mainboard/lenovo/x60/acpi/platform.asl3
14 files changed, 80 insertions, 8 deletions
diff --git a/src/ec/lenovo/h8/acpi/thinkpad.asl b/src/ec/lenovo/h8/acpi/thinkpad.asl
index e67bc8f65f..8fb5716531 100644
--- a/src/ec/lenovo/h8/acpi/thinkpad.asl
+++ b/src/ec/lenovo/h8/acpi/thinkpad.asl
@@ -157,6 +157,11 @@ Device (HKEY)
Return (\_SB.PCI0.LPCB.EC.GSTS)
}
+ /* Has thinkpad_acpi module loaded */
+ Name (HAST, 0)
+
+ /* State after sleep */
+ Name (WBDC, 0)
/*
* Returns the current state:
* Bit 0: BT HW present
@@ -165,14 +170,15 @@ Device (HKEY)
*/
Method (GBDC, 0)
{
+ Store (One, HAST)
+
If (HBDC) {
Store(One, Local0)
If(\_SB.PCI0.LPCB.EC.BTEB)
{
Or(Local0, 2, Local0)
}
- /* FIXME: Implement state at resume, for now Enabled */
- Or(Local0, 4, Local0)
+ Or(Local0, ShiftLeft(WBDC, 2), Local0)
Return (Local0)
} Else {
Return (0)
@@ -186,14 +192,18 @@ Device (HKEY)
*/
Method (SBDC, 1)
{
+ Store (One, HAST)
+
If (HBDC) {
ShiftRight (And(Arg0, 2), 1, Local0)
Store (Local0, \_SB.PCI0.LPCB.EC.BTEB)
-
- /* FIXME: Store state at resume */
+ ShiftRight (And(Arg0, 4), 2, Local0)
+ Store (Local0, WBDC)
}
}
+ /* State after sleep */
+ Name (WWAN, 0)
/*
* Returns the current state:
* Bit 0: WWAN HW present
@@ -202,14 +212,15 @@ Device (HKEY)
*/
Method (GWAN, 0)
{
+ Store (One, HAST)
+
If (HWAN) {
Store(One, Local0)
If(\_SB.PCI0.LPCB.EC.WWEB)
{
Or(Local0, 2, Local0)
}
- /* FIXME: Implement state at resume, for now Enabled */
- Or(Local0, 4, Local0)
+ Or(Local0, ShiftLeft(WWAN, 2), Local0)
Return (Local0)
} Else {
Return (0)
@@ -223,11 +234,12 @@ Device (HKEY)
*/
Method (SWAN, 1)
{
+ Store (One, HAST)
+
If (HWAN) {
ShiftRight (And(Arg0, 2), 1, Local0)
Store (Local0, \_SB.PCI0.LPCB.EC.WWEB)
-
- /* FIXME: Store state at resume */
+ ShiftRight (And(Arg0, 4), 2, WWAN)
}
}
@@ -291,4 +303,24 @@ Device (HKEY)
Store (Local0, \_SB.PCI0.LPCB.EC.UWBE)
}
}
+
+ /*
+ * Store initial state
+ */
+ Method (_INI, 0, NotSerialized)
+ {
+ Store (\_SB.PCI0.LPCB.EC.BTEB, WBDC)
+ Store (\_SB.PCI0.LPCB.EC.WWEB, WWAN)
+ }
+
+ /*
+ * Called from _WAK
+ */
+ Method (WAKE, 1)
+ {
+ If (HAST) {
+ Store (WBDC, \_SB.PCI0.LPCB.EC.BTEB)
+ Store (WWAN, \_SB.PCI0.LPCB.EC.WWEB)
+ }
+ }
}
diff --git a/src/mainboard/lenovo/t400/acpi/platform.asl b/src/mainboard/lenovo/t400/acpi/platform.asl
index 5c6f96861d..85357a50df 100644
--- a/src/mainboard/lenovo/t400/acpi/platform.asl
+++ b/src/mainboard/lenovo/t400/acpi/platform.asl
@@ -31,6 +31,9 @@ Method(_PTS,1)
Method(_WAK,1)
{
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
// CPU specific part
// Notify PCI Express slots in case a card
diff --git a/src/mainboard/lenovo/t420s/acpi/platform.asl b/src/mainboard/lenovo/t420s/acpi/platform.asl
index 6f26c5a56f..e4c8a24f78 100644
--- a/src/mainboard/lenovo/t420s/acpi/platform.asl
+++ b/src/mainboard/lenovo/t420s/acpi/platform.asl
@@ -32,6 +32,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/t430/acpi/platform.asl b/src/mainboard/lenovo/t430/acpi/platform.asl
index efbf0ea7ef..13ea2c1b40 100644
--- a/src/mainboard/lenovo/t430/acpi/platform.asl
+++ b/src/mainboard/lenovo/t430/acpi/platform.asl
@@ -18,6 +18,10 @@ Method(_WAK,1)
/* ME may not be up yet. */
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/t430s/acpi/platform.asl b/src/mainboard/lenovo/t430s/acpi/platform.asl
index 6f26c5a56f..e4c8a24f78 100644
--- a/src/mainboard/lenovo/t430s/acpi/platform.asl
+++ b/src/mainboard/lenovo/t430s/acpi/platform.asl
@@ -32,6 +32,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/t520/acpi/platform.asl b/src/mainboard/lenovo/t520/acpi/platform.asl
index 6f26c5a56f..e4c8a24f78 100644
--- a/src/mainboard/lenovo/t520/acpi/platform.asl
+++ b/src/mainboard/lenovo/t520/acpi/platform.asl
@@ -32,6 +32,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/t530/acpi/platform.asl b/src/mainboard/lenovo/t530/acpi/platform.asl
index 9cd327a765..bf686f444f 100644
--- a/src/mainboard/lenovo/t530/acpi/platform.asl
+++ b/src/mainboard/lenovo/t530/acpi/platform.asl
@@ -32,6 +32,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/t60/acpi/platform.asl b/src/mainboard/lenovo/t60/acpi/platform.asl
index 006b6f0ba2..f9e991b984 100644
--- a/src/mainboard/lenovo/t60/acpi/platform.asl
+++ b/src/mainboard/lenovo/t60/acpi/platform.asl
@@ -29,6 +29,9 @@ Method(_PTS,1)
Method(_WAK,1)
{
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
// CPU specific part
// Notify PCI Express slots in case a card
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/acpi/platform.asl b/src/mainboard/lenovo/x1_carbon_gen1/acpi/platform.asl
index 3e9225cd34..b63c91c641 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/acpi/platform.asl
+++ b/src/mainboard/lenovo/x1_carbon_gen1/acpi/platform.asl
@@ -30,6 +30,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/x200/acpi/platform.asl b/src/mainboard/lenovo/x200/acpi/platform.asl
index 5c6f96861d..85357a50df 100644
--- a/src/mainboard/lenovo/x200/acpi/platform.asl
+++ b/src/mainboard/lenovo/x200/acpi/platform.asl
@@ -31,6 +31,9 @@ Method(_PTS,1)
Method(_WAK,1)
{
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
// CPU specific part
// Notify PCI Express slots in case a card
diff --git a/src/mainboard/lenovo/x201/acpi/platform.asl b/src/mainboard/lenovo/x201/acpi/platform.asl
index 0a6d5f3448..7d7013bcd3 100644
--- a/src/mainboard/lenovo/x201/acpi/platform.asl
+++ b/src/mainboard/lenovo/x201/acpi/platform.asl
@@ -63,6 +63,9 @@ Method(_PTS,1)
Method(_WAK,1)
{
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/x220/acpi/platform.asl b/src/mainboard/lenovo/x220/acpi/platform.asl
index 9cd327a765..bf686f444f 100644
--- a/src/mainboard/lenovo/x220/acpi/platform.asl
+++ b/src/mainboard/lenovo/x220/acpi/platform.asl
@@ -32,6 +32,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/x230/acpi/platform.asl b/src/mainboard/lenovo/x230/acpi/platform.asl
index 9cd327a765..bf686f444f 100644
--- a/src/mainboard/lenovo/x230/acpi/platform.asl
+++ b/src/mainboard/lenovo/x230/acpi/platform.asl
@@ -32,6 +32,9 @@ Method(_WAK,1)
Store (0, \_TZ.MEB1)
Store (0, \_TZ.MEB2)
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
/* Not implemented. */
Return(Package(){0,0})
}
diff --git a/src/mainboard/lenovo/x60/acpi/platform.asl b/src/mainboard/lenovo/x60/acpi/platform.asl
index 006b6f0ba2..f9e991b984 100644
--- a/src/mainboard/lenovo/x60/acpi/platform.asl
+++ b/src/mainboard/lenovo/x60/acpi/platform.asl
@@ -29,6 +29,9 @@ Method(_PTS,1)
Method(_WAK,1)
{
+ /* Wake the HKEY to init BT/WWAN */
+ \_SB.PCI0.LPCB.EC.HKEY.WAKE (Arg0)
+
// CPU specific part
// Notify PCI Express slots in case a card