ACPI 6.6 defines DSM function index 0xA to query ARS error injection capabilities. Advertise support for this function in the NFIT DSM mask so that userspace can detect platform support.
No kernel ABI changes are introduced; this uses the existing DSM infrastructure. Signed-off-by: Shubhakar Gowda <[email protected]> --- drivers/acpi/nfit/core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index 5a1ced5..8dcd159 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -2113,6 +2113,8 @@ enum nfit_aux_cmds { NFIT_CMD_ARS_INJECT_SET = 7, NFIT_CMD_ARS_INJECT_CLEAR = 8, NFIT_CMD_ARS_INJECT_GET = 9, + /* ACPI 6.5: DSM function 0xA — Query ARS Error Inject Capabilities */ + NFIT_CMD_ARS_QUERY_CAP = 10, }; static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc) @@ -2152,10 +2154,13 @@ static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc) (1 << NFIT_CMD_TRANSLATE_SPA) | (1 << NFIT_CMD_ARS_INJECT_SET) | (1 << NFIT_CMD_ARS_INJECT_CLEAR) | - (1 << NFIT_CMD_ARS_INJECT_GET); + (1 << NFIT_CMD_ARS_INJECT_GET) | + (1 << NFIT_CMD_ARS_QUERY_CAP); for_each_set_bit(i, &dsm_mask, BITS_PER_LONG) if (acpi_check_dsm(adev->handle, guid, 1, 1ULL << i)) set_bit(i, &acpi_desc->bus_dsm_mask); + dev_dbg(acpi_desc->dev, "NFIT DSM mask detected: %#lx\n", + acpi_desc->bus_dsm_mask); /* Enumerate allowed NVDIMM_BUS_FAMILY_INTEL commands */ dsm_mask = NVDIMM_BUS_INTEL_FW_ACTIVATE_CMDMASK; -- 2.43.0

