From: Dave Jiang <dave.jiang@intel.com>
Date: Wed, 31 Jan 2018 12:45:43 -0700
Subject: acpi: nfit: add persistent memory control flag for nd_region
Patch-mainline: v4.16-rc1
Git-commit: 30e6d7bf29daa79d80711d35211c9b60894dbc44
References: bsc#1091424
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>
Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
---
drivers/acpi/nfit/core.c | 3 +++
include/linux/libnvdimm.h | 6 ++++++
2 files changed, 9 insertions(+)
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -2645,6 +2645,9 @@ static int acpi_nfit_register_region(str
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;
--- a/include/linux/libnvdimm.h
+++ b/include/linux/libnvdimm.h
@@ -40,6 +40,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,