nfit: add sysfs dimm 'family' and 'dsm_mask' attributes
authorDan Williams <dan.j.williams@intel.com>
Fri, 29 Apr 2016 01:18:05 +0000 (18:18 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 6 May 2016 02:02:45 +0000 (19:02 -0700)
Communicate the command format and supported functions to userspace
tooling.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/acpi/nfit.c

index ad4fc869fbb70f83a9c8796ee917573eb60e5cca..bf2d7a20d9d725265748d0ee51fab279f9d61f6c 100644 (file)
@@ -897,6 +897,30 @@ static ssize_t serial_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(serial);
 
+static ssize_t family_show(struct device *dev,
+               struct device_attribute *attr, char *buf)
+{
+       struct nvdimm *nvdimm = to_nvdimm(dev);
+       struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
+
+       if (nfit_mem->family < 0)
+               return -ENXIO;
+       return sprintf(buf, "%d\n", nfit_mem->family);
+}
+static DEVICE_ATTR_RO(family);
+
+static ssize_t dsm_mask_show(struct device *dev,
+               struct device_attribute *attr, char *buf)
+{
+       struct nvdimm *nvdimm = to_nvdimm(dev);
+       struct nfit_mem *nfit_mem = nvdimm_provider_data(nvdimm);
+
+       if (nfit_mem->family < 0)
+               return -ENXIO;
+       return sprintf(buf, "%#lx\n", nfit_mem->dsm_mask);
+}
+static DEVICE_ATTR_RO(dsm_mask);
+
 static ssize_t flags_show(struct device *dev,
                struct device_attribute *attr, char *buf)
 {
@@ -920,6 +944,8 @@ static struct attribute *acpi_nfit_dimm_attributes[] = {
        &dev_attr_serial.attr,
        &dev_attr_rev_id.attr,
        &dev_attr_flags.attr,
+       &dev_attr_family.attr,
+       &dev_attr_dsm_mask.attr,
        NULL,
 };