HomeFreeBSD

GPIO: Add ACPI _AEI support

Description

GPIO: Add ACPI _AEI support

Changes to acpi_gpiobus.c handle discovering and parsing the _AEI
objects and storing necessary data in device ivars. A new gpioaei.c
file implements the device, which simply requests an interrupt when
the pin is triggered and invokes the appropriate _Exx or _Lxx ACPI
method.

This makes the GPIO "power button" work on arm64 Graviton systems,
allowing EC2 "Stop"/"Reboot" instance calls to be handled cleanly.
(Prior to this change, those requests would time out after 4 minutes
and the instance would be forcibly killed.)

Reviewed by: imp, andrew, Ahmad Khalifa
Approved by: re (kib)
MFC after: 3 days
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D47253
Co-authored-by: Andrew Turner <andrew@FreeBSD.org>

(cherry picked from commit 9709bda03cd0f20eba0ba4276fc3c2e06354a54f)
(cherry picked from commit c2cd78d9446ebe79accf6c1862230dfbe7276525)

Details

Provenance
cpercivaAuthored on Oct 22 2024, 6:53 PM
Reviewer
imp
Differential Revision
D47253: GPIO: Add ACPI _AEI support
Parents
rG4b4c7b192400: bus: Activate INTRNG interrupts in common code
Branches
Unknown
Tags
Unknown