Commit 5ad9a7fd authored by Toshi Kani's avatar Toshi Kani Committed by Dan Williams

acpi/nfit: Update nfit driver to comply with ACPI 6.1

ACPI 6.1, Table 5-133, updates NVDIMM Control Region Structure
as follows.
 - Valid Fields, Manufacturing Location, and Manufacturing Date
   are added from reserved range.  No change in the structure size.
 - IDs (SPD values) are stored as arrays of bytes (i.e. big-endian
   format).  The spec clarifies that they need to be represented
   as arrays of bytes as well.

This patch makes the following changes to support this update.
 - Change the NFIT driver to show SPD ID values in big-endian
   format.
 - Change sprintf format to use "0x" instead of "#" since "%#02x"
   does not prepend '0'.

link: http://www.uefi.org/sites/default/files/resources/ACPI_6_1.pdfSigned-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Robert Moore <robert.moore@intel.com>
Cc: Robert Elliott <elliott@hpe.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 8804f252
...@@ -816,7 +816,7 @@ static ssize_t vendor_show(struct device *dev, ...@@ -816,7 +816,7 @@ static ssize_t vendor_show(struct device *dev,
{ {
struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev); struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev);
return sprintf(buf, "%#x\n", dcr->vendor_id); return sprintf(buf, "0x%04x\n", be16_to_cpu(dcr->vendor_id));
} }
static DEVICE_ATTR_RO(vendor); static DEVICE_ATTR_RO(vendor);
...@@ -825,7 +825,7 @@ static ssize_t rev_id_show(struct device *dev, ...@@ -825,7 +825,7 @@ static ssize_t rev_id_show(struct device *dev,
{ {
struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev); struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev);
return sprintf(buf, "%#x\n", dcr->revision_id); return sprintf(buf, "0x%04x\n", be16_to_cpu(dcr->revision_id));
} }
static DEVICE_ATTR_RO(rev_id); static DEVICE_ATTR_RO(rev_id);
...@@ -834,7 +834,7 @@ static ssize_t device_show(struct device *dev, ...@@ -834,7 +834,7 @@ static ssize_t device_show(struct device *dev,
{ {
struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev); struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev);
return sprintf(buf, "%#x\n", dcr->device_id); return sprintf(buf, "0x%04x\n", be16_to_cpu(dcr->device_id));
} }
static DEVICE_ATTR_RO(device); static DEVICE_ATTR_RO(device);
...@@ -843,7 +843,7 @@ static ssize_t format_show(struct device *dev, ...@@ -843,7 +843,7 @@ static ssize_t format_show(struct device *dev,
{ {
struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev); struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev);
return sprintf(buf, "%#x\n", dcr->code); return sprintf(buf, "0x%04x\n", be16_to_cpu(dcr->code));
} }
static DEVICE_ATTR_RO(format); static DEVICE_ATTR_RO(format);
...@@ -852,7 +852,7 @@ static ssize_t serial_show(struct device *dev, ...@@ -852,7 +852,7 @@ static ssize_t serial_show(struct device *dev,
{ {
struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev); struct acpi_nfit_control_region *dcr = to_nfit_dcr(dev);
return sprintf(buf, "%#x\n", dcr->serial_number); return sprintf(buf, "0x%08x\n", be32_to_cpu(dcr->serial_number));
} }
static DEVICE_ATTR_RO(serial); static DEVICE_ATTR_RO(serial);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment