45452c5a8e
acpid: load SystemQuirkFlags from in-memory DMI at init via
redox-driver-sys::quirks::toml_loader::load_dmi_system_quirks.
Store as a field on AcpiContext and expose via system_quirks().
Wire two consumers:
- FORCE_S2IDLE in set_global_s_state(3): routes S3 entry to
s2idle preparation instead. LG Gram 16Z90TP, Framework 16,
late Dell XPS advertise \_S3 in DSDT but the firmware refuses
the SLP_TYP write and hangs / silently no-ops.
- NO_LEGACY_PM1B in set_global_s_state(*): skips the PM1b write
even when FADT reports a non-zero pm1b_control_block. LG
firmware reports a PM1b block that does not exist on the
platform; writes wedge the controller.
ps2d: load SystemQuirkFlags from /scheme/acpi/dmi at init via
redox_driver_sys::quirks::system_quirks(). Wire one consumer:
- KBD_DEACTIVATE_FIXUP in Ps2::init(): skips SetDefaultsDisable
(0xF5) during keyboard init. LG Gram + some Dell/HP/Lenovo
keyboards wedge or drop keys when 0xF5 is sent (Linux
atkbd.c keyboard_broken[] / atkbd_deactivate_input tables).
acpid/src/dmi.rs: reframe misleading 'stub' docstring on
try_load_existing() — the function is a real round-trip reader
for /scheme/acpi/dmi, not a stub.
Cargo.lock regenerated to include the new redox-driver-sys path
dependency in acpid and ps2d.
This is the consumer-wiring deliverable for LG Gram Round 1
(local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md). The
matching redox-driver-sys stub-replacement work
(load_dmi_acpi_quirks real loader, PANEL_ORIENTATION_TABLE
populated with Linux DRM entries, ACPI_FLAG_NAMES + TOML parser)
lands in the parent repo in the same Round 1 push.
acpi_irq1_skip_override remains documented as needing kernel IRQ
setup work (out of scope for Round 1).
40 lines
1.2 KiB
TOML
40 lines
1.2 KiB
TOML
[package]
|
|
name = "acpid"
|
|
description = "ACPI daemon"
|
|
version = "0.1.0"
|
|
authors = ["4lDO2 <4lDO2@protonmail.com>"]
|
|
edition = "2018"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
acpi = { path = "../acpi-rs", features = ["alloc", "aml"] }
|
|
arrayvec = "0.7.6"
|
|
log.workspace = true
|
|
num-derive = "0.3"
|
|
num-traits = "0.2"
|
|
parking_lot.workspace = true
|
|
plain.workspace = true
|
|
redox_syscall.workspace = true
|
|
redox_event.workspace = true
|
|
rustc-hash = "1.1.0"
|
|
thiserror.workspace = true
|
|
ron.workspace = true
|
|
serde.workspace = true
|
|
|
|
amlserde = { path = "../amlserde" }
|
|
common = { path = "../../common" }
|
|
daemon = { path = "../../daemon" }
|
|
libredox.workspace = true
|
|
redox-scheme.workspace = true
|
|
scheme-utils = { path = "../../scheme-utils" }
|
|
|
|
# Quirks system: acpid is the consumer of SystemQuirkFlags (force_s2idle,
|
|
# acpi_irq1_skip_override, no_legacy_pm1b). Loaded at init from the in-memory
|
|
# DMI scan via the toml_loader path. Mirrors the cross-tree dep pattern used
|
|
# by xhcid (drivers/usb/xhcid/Cargo.toml).
|
|
redox-driver-sys = { path = "../../../../recipes/drivers/redox-driver-sys/source" }
|
|
|
|
[lints]
|
|
workspace = true
|