acpi: nfit: add persistent memory control flag for nd_region
authorDave Jiang <dave.jiang@intel.com>
Wed, 31 Jan 2018 19:45:43 +0000 (12:45 -0700)
committerRoss Zwisler <ross.zwisler@linux.intel.com>
Thu, 1 Feb 2018 22:01:15 +0000 (15:01 -0700)
Propagate the ADR attribute flag from the NFIT platform capabilities
sub-table to nd_region.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
drivers/acpi/nfit/core.c
include/linux/libnvdimm.h

index dc77582..aa9d00d 100644 (file)
@@ -2675,6 +2675,9 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc,
        if(acpi_desc->platform_cap & ACPI_NFIT_CAPABILITY_CACHE_FLUSH)
                set_bit(ND_REGION_PERSIST_CACHE, &ndr_desc->flags);
 
+       if (acpi_desc->platform_cap & ACPI_NFIT_CAPABILITY_MEM_FLUSH)
+               set_bit(ND_REGION_PERSIST_MEMCTRL, &ndr_desc->flags);
+
        list_for_each_entry(nfit_memdev, &acpi_desc->memdevs, list) {
                struct acpi_nfit_memory_map *memdev = nfit_memdev->memdev;
                struct nd_mapping_desc *mapping;
index f2fc0da..ff855ed 100644 (file)
@@ -52,6 +52,12 @@ enum {
         * system power loss.
         */
        ND_REGION_PERSIST_CACHE = 1,
+       /*
+        * Platform provides mechanisms to automatically flush outstanding
+        * write data from memory controler to pmem on system power loss.
+        * (ADR)
+        */
+       ND_REGION_PERSIST_MEMCTRL = 2,
 
        /* mark newly adjusted resources as requiring a label update */
        DPA_RESOURCE_ADJUSTED = 1 << 0,