ACPI-CA update patch for review
dillon at apollo.backplane.com
Mon Jan 15 11:34:47 PST 2007
:While looking around, I found that AcpiEnterSleepStateS4Bios() has
:similar spin loop at the bottom, but with a call to AcpiOsStall()
:(== DELAY()) before AcpiGetRegister(). So I tried adding it to
:AcpiEnterSleepState() too, and to my amazement, the problem went away.
:I tried several ten times of suspending and waking up the laptop,
:but I'm no longer able to reproduce it. My question, though, is why
:why just a DELAY() makes any difference (ISTR making gd_spinlocks_wr
:volatile didn't solve the problem).
:Anyway, new version is here:
My guess is that it is related to BIOS interactions with system
management events. It's the same-old, same-old. Commercial vendors
hire too many idiot programmers who make the same sad mistakes over
and over and over again, like using an unsynchronized clock for the
ACPI timer that can mess bits up when you read it, or just implement
24 bits, or depend on specific timing arrangements instead of hard
handshakes. It really annoys the heck out of me.
<dillon at backplane.com>
More information about the Submit