ACPI 6.6 defines DSM function index 0xA to Query Address Range Scrub
(ARS) error injection capabilities. This patch adds support for this
DSM function in the NFIT DSM mask so that userspace and ndctl tool can
detect platform support for Query ARS error injection capabilities features.

The patch updates NFIT initialization to include DSM 0xA, logs
supported DSMs for debugging, and uses the existing DSM infrastructure.
No kernel ABI changes are introduced.

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..6cc863e 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.6: 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


Reply via email to