nfit: fix multi-interface dimm handling, acpi6.1 compatibility
authorDan Williams <dan.j.williams@intel.com>
Fri, 5 Feb 2016 00:51:00 +0000 (16:51 -0800)
committerDan Williams <dan.j.williams@intel.com>
Fri, 19 Feb 2016 19:47:26 +0000 (11:47 -0800)
commit6697b2cf69d4363266ca47eaebc49ef13dabc1c9
tree149f0f3aa05a5407491fdc568239d0b6ed5387dd
parent18558cae0272f8fd9647e69d3fec1565a7949865
nfit: fix multi-interface dimm handling, acpi6.1 compatibility

ACPI 6.1 clarified that multi-interface dimms require multiple control
region entries (DCRs) per dimm.  Previously we were assuming that a
control region is only present when block-data-windows are present.
This implementation was done with an eye to be compatibility with the
looser ACPI 6.0 interpretation of this table.

1/ When coalescing the memory device (MEMDEV) tables for a single dimm,
coalesce on device_handle rather than control region index.

2/ Whenever we disocver a control region with non-zero block windows
re-scan for block-data-window (BDW) entries.

We may need to revisit this if a DIMM ever implements a format interface
outside of blk or pmem, but that is not on the foreseeable horizon.

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