The goal of this update is to allow the driver to simultaneously support EINJ and EINJv2. The implementation follows ACPI 6.6 specs[1] that enables the driver to discover system capabilities through GET_ERROR_TYPE.
Link: https://uefi.org/specs/ACPI/6.6/18_Platform_Error_Interfaces.html#error-injection [1] V5: *Users no longer input component array size, instead it is counted by parsing the component array itself. V6: *Fix memory leak. *If EINJv2 initialization failed, EINJv1 will still work, and probe function will continue with disabled EINJv2. V7: *Update component array to take 128-bit values to match ACPI specs. *Enable Vendor EINJv2 injections *Moved component array parsing and validating to a separate function to improve readability. V8: *Update UI to use single value files for component array. *Update links to point to recent ACPI 6.6 spec release. *Updated commit messages and documentation patch. *Dropped the first two patches as they were merged via ACPICA project. V9: *Fix commit messages signed-off/reviewed-by order. *Fix sparse warning by defining syndrom_data as a static struct. V10: *Use defined value instead of hard coded for component array size *Unset EINJv2 flag for EINJv1 injections Tony Luck (1): ACPI: APEI: EINJ: Create debugfs files to enter device id and syndrome Zaid Alali (6): ACPI: APEI: EINJ: Fix kernel test sparse warnings ACPI: APEI: EINJ: Enable the discovery of EINJv2 capabilities ACPI: APEI: EINJ: Add einjv2 extension struct ACPI: APEI: EINJ: Discover EINJv2 parameters ACPI: APEI: EINJ: Enable EINJv2 error injections ACPI: APEI: EINJ: Update the documentation for EINJv2 support .../firmware-guide/acpi/apei/einj.rst | 33 ++ drivers/acpi/apei/apei-internal.h | 2 +- drivers/acpi/apei/einj-core.c | 374 ++++++++++++++---- drivers/acpi/apei/einj-cxl.c | 2 +- 4 files changed, 342 insertions(+), 69 deletions(-) -- 2.43.0