a12fb9fc7c
Port useful ACPICA components into the existing Rust ACPI stack: - LPIT (Low Power Idle Table) parser in new acpid/wake.rs. Parses native C-state LPI entries (entry trigger, residency, latency, residency counter, counter frequency). Computes total residency and deepest LPI state. 4 unit tests cover parsing, empty input, short input, and deepest-entry selection. Reference: Linux include/acpi/actbl2.h struct acpi_lpit_native. - _PRW wake device enumeration in acpid/wake.rs. WakeRegistry::enumerate() evaluates _PRW on known wake-capable device paths (LID, PWRB, SLPB, XHCI, HDAS, CNVW, I2C0/1, THC0/1). Extracts GPE number and sleep state from the _PRW package. Reference: Linux drivers/acpi/scan.c acpi_bus_get_wakeup_device_flags. - FADT S0-idle detection: Fadt::supports_s0_idle() checks bit 21 (ACPI_FADT_LOW_POWER_S0) to detect platforms that support s2idle. Reference: Linux include/acpi/actbl.h. - acpid/main.rs: LPIT parse + wake enumeration + S0-idle detection wired into init after AcpiContext::init() and before power events. ACPICA assessment: do NOT port ACPICA as a C library. Port its useful data structures and algorithms into the existing Rust stack (acpi-rs vendored fork + acpid daemon). The AML interpreter already has comprehensive opcode coverage (only DefLoad/DefLoadTable remain unimplemented, both optional). The GPE/EC/fixed-event infrastructure is already in acpid. LPIT + _PRW + S0-idle detection fill the remaining gaps for Phase 9.1 s2idle completion.