diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-04-28 18:18:05 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-05-05 19:02:45 -0700 |
commit | a94e3fbe4d53d4e512c4ea88a475e605b8d8dccb (patch) | |
tree | 374034ce7235e2eca188f5f36f09a0322595f984 | |
parent | 6634fb06906f52a3a3125e88681a7fa6e353f31d (diff) | |
download | op-kernel-dev-a94e3fbe4d53d4e512c4ea88a475e605b8d8dccb.zip op-kernel-dev-a94e3fbe4d53d4e512c4ea88a475e605b8d8dccb.tar.gz |
nfit: add sysfs dimm 'family' and 'dsm_mask' attributes
Communicate the command format and supported functions to userspace
tooling.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | drivers/acpi/nfit.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c index ad4fc86..bf2d7a2 100644 --- a/drivers/acpi/nfit.c +++ b/drivers/acpi/nfit.c @@ -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, }; |