mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-11 04:26:38 +00:00
In order to allow handling physical GPE in the guest, implement GPE status & enable register bits read/write passthrough to/from physical registers for selected GPEs (while for the rest of GPEs the registers remain purely emulated). We use Linux kernel's ACPI sysfs interface for accessing physical GPE regs. Note that in particular for enabling/disabling GPEs we use "mask"/"unmask" interfaces instead of "enable"/"disable", since we want to do raw enable/disable, bypassing ACPICA's reference counting. We only do "enable" when it is enabled for the first time, to ensure that the ref count for the given GPE is > 0. This of course assumes that the given GPE is enabled/disabled exclusively by the guest, never by the host. Thanks to Peter Fang for the idea to use mask/unmask. BUG=b:205072342 TEST=see CL:3492224 Change-Id: I20c08d371710f89b359ac5e8677f22165811eb84 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3492222 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Dmytro Maluka <dmy@semihalf.com> Reviewed-by: Dmitry Torokhov <dtor@chromium.org> Commit-Queue: Tomasz Nowicki <tnowicki@google.com> |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |