diff options
author | Matt DeVillier <matt.devillier@gmail.com> | 2017-07-06 17:19:17 -0500 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2017-07-08 19:06:00 +0000 |
commit | aa95af6bf0a35a82ed9ae97893e8812e80648b8d (patch) | |
tree | a8a02f250d102f455fa409b2d65e8079195bcea2 | |
parent | b3d4abe208fb849723ccb22f3deb50f028b98ea0 (diff) |
ec/mec1308: Fix fan control ACPI
Returing FSL# for _STA causes Windows to BSOD. Re-work _STA to instead
return 0/1 based on FLVL, using google/beltino as a model.
Also correct serialization type for _CRS.
Change-Id: Ibf3af15bab3590f7c1c4401e1978dbcf2a495216
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/20482
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-rw-r--r-- | src/ec/smsc/mec1308/acpi/ec.asl | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/ec/smsc/mec1308/acpi/ec.asl b/src/ec/smsc/mec1308/acpi/ec.asl index a8de9fa1f8..39a27e1607 100644 --- a/src/ec/smsc/mec1308/acpi/ec.asl +++ b/src/ec/smsc/mec1308/acpi/ec.asl @@ -58,7 +58,7 @@ Device (EC0) FCOS, 1, // Fan Speed OS Control } - Method (_CRS, 0, NotSerialized) + Method (_CRS, 0, Serialized) { Name (ECMD, ResourceTemplate() { @@ -87,7 +87,13 @@ Device (EC0) PowerResource (FNP0, 0, 0) { - Method (_STA) { Return (FSL0) } + Method (_STA) { + If (LLessEqual (\FLVL, 0)) { + Return (One) + } Else { + Return (Zero) + } + } Method (_ON) { If (FCOS) { Store (One, FSL0) @@ -106,7 +112,13 @@ Device (EC0) PowerResource (FNP1, 0, 0) { - Method (_STA) { Return (FSL1) } + Method (_STA) { + If (LLessEqual (\FLVL, 1)) { + Return (One) + } Else { + Return (Zero) + } + } Method (_ON) { If (FCOS) { Store (One, FSL1) @@ -125,7 +137,13 @@ Device (EC0) PowerResource (FNP2, 0, 0) { - Method (_STA) { Return (FSL2) } + Method (_STA) { + If (LLessEqual (\FLVL, 2)) { + Return (One) + } Else { + Return (Zero) + } + } Method (_ON) { If (FCOS) { Store (One, FSL2) @@ -144,7 +162,13 @@ Device (EC0) PowerResource (FNP3, 0, 0) { - Method (_STA) { Return (FSL3) } + Method (_STA) { + If (LLessEqual (\FLVL, 3)) { + Return (One) + } Else { + Return (Zero) + } + } Method (_ON) { If (FCOS) { Store (One, FSL3) @@ -163,7 +187,13 @@ Device (EC0) PowerResource (FNP4, 0, 0) { - Method (_STA) { Return (FSL4) } + Method (_STA) { + If (LLessEqual (\FLVL, 4)) { + Return (One) + } Else { + Return (Zero) + } + } Method (_ON) { If (FCOS) { Store (One, FSL4) |