Well, no - it worked fine as long as the firmware's assumptions about hardware state lined up with the way the operating system programmed that hardware. If the firmware failed to save registers that the OS had touched (because the vendor Windows driver didn't touch them) you'd end up in a bad situation, because Linux didn't have device suspend/resume callbacks at that point so couldn't take on the responsibility itself (and in the worst case the firmware could restore a subset of state that wedged the hardware so the driver couldn't recover it). Later versions that supported the OS callbacks could certainly trigger other failures, but from a philosophical perspective there was just never a way to make APM work without expressing a stronger contract with the OS on a per-device basis. ACPI solves that problem by disclaiming it entirely and assuming that the OS can re-program everything visible to it.
no subject