drivers/intel/gma: Fix OpRegion Mailbox3 synchronization
Make XBCM `Serialized` (obvious), and check for the callee clearing the request bit (we checked only the status for 0 which we potentially wrote ourselves). Change-Id: Ic92d525eda8d0a159fa5ddaacf230658d71c1578 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/28302 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
b4be50c9ca
commit
c48d883d8b
|
@ -55,7 +55,7 @@
|
|||
* * Driver not loaded or not ready
|
||||
* * Driver reported an error during ASLE IRQ
|
||||
*/
|
||||
Method (XBCM, 1, NotSerialized)
|
||||
Method (XBCM, 1, Serialized)
|
||||
{
|
||||
If (LEqual(ASLS, Zero))
|
||||
{
|
||||
|
@ -89,9 +89,14 @@
|
|||
While (LGreater(Local0, Zero))
|
||||
{
|
||||
Sleep (1)
|
||||
If (LEqual(And(ShiftRight(ASLC, 12), 0x3), Zero))
|
||||
{
|
||||
Return (Zero)
|
||||
If (LEqual (And (ASLC, 0x2), 0)) {
|
||||
/* Request has been processed, check status: */
|
||||
And (ShiftRight (ASLC, 12), 0x3, Local1)
|
||||
If (LEqual (Local1, 0)) {
|
||||
Return (Zero)
|
||||
} Else {
|
||||
Return (Ones)
|
||||
}
|
||||
}
|
||||
Decrement (Local0)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue