ACPI: Work around IASL warning reading/writing same register

The newer versions of IASL are unhappy when an operator
has the same object as both source and destination.

The warning can be completely disabled with a command
line argument, but in general, I'd really rather not
just disable warnings.

The bits in this register are write 1 to clear, so reading and
writing the same register is what we want to do.  Instead, store
it in a temporary register then write it in a second operation.

Fixes warning:
dsdt.aml   1396:  Store(PWST, PWST)
Warning  3023 -                 ^ Duplicate value in list
(Source is the same as Target)

Change-Id: I52d73d4431db237be83016d67cd397f31b53d9c6
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/12691
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Martin Roth 2015-12-08 14:00:07 -07:00
parent 91d9cbc2fb
commit f77516cb6d
36 changed files with 73 additions and 36 deletions

View File

@ -931,7 +931,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -931,7 +931,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -898,7 +898,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -895,7 +895,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -897,7 +897,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -256,7 +256,8 @@ Method(\_WAK, 1) {
/* Configure southbridge for wake */
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
Store (0x22, DBG8)

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -931,7 +931,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -931,7 +931,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -105,7 +105,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -937,7 +937,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -898,7 +898,9 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -925,7 +925,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -925,7 +925,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -104,7 +104,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -140,7 +140,8 @@ Method(\_WAK, 1) {
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -970,7 +970,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -970,7 +970,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -955,7 +955,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -898,7 +898,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -898,7 +898,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))

View File

@ -970,7 +970,8 @@ DefinitionBlock (
}
/* Arbitrarily clear PciExpWakeStatus */
Store(PWST, PWST)
Store(PWST, Local1)
Store(Local1, PWST)
/* if(DeRefOf(Index(WKST,0))) {
* Store(0, Index(WKST,1))