Hi Tony, Tested this updated patch: Decoding via ACPI ADXL worked well on Skylake (2 sockets) + BIOS with ADXL DSM support. > 1) Just allocate the array for the values once when setting up, not on each > decode (its not very big, and avoids risk of not having memory available at > decode time). Thanks for the improvement. > 2) Add an enum to define names for the offsets in the component_indices[] array OK, it gets rid of the magic numbers {0,1,2,3} and makes code more readable. > 3) Ignore unused fields returned by adxl_decode() (those with value 0xffffffffffffffff. Yes, the spec: https://cdrdv2.intel.com/v1/dl/getContent/603354 P.6 does say that invalid values are indicated by 0xffffffffffffffff, so we can ignore them. Thanks! -Qiuxu