ACPI-CA update patch for review

Matthew Dillon 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:
:  http://les.ath.cx/DragonFly/acpi-20061109-19.diff
:
:Cheers.

    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.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Submit mailing list