On Thu, 2020-02-27 at 14:54 +1100, Andrew Donnellan wrote: > On 21/2/20 2:27 pm, Alastair D'Silva wrote: > > +/** > > + * read_device_metadata() - Retrieve config information from the > > AFU and save it for future use > > + * @ocxlpmem: the device metadata > > + * Return: 0 on success, negative on failure > > + */ > > +static int read_device_metadata(struct ocxlpmem *ocxlpmem) > > +{ > > + u64 val; > > + int rc; > > + > > + rc = ocxl_global_mmio_read64(ocxlpmem->ocxl_afu, > > GLOBAL_MMIO_CCAP0, > > + OCXL_LITTLE_ENDIAN, &val); > > + if (rc) > > + return rc; > > + > > + ocxlpmem->scm_revision = val & 0xFFFF; > > + ocxlpmem->read_latency = (val >> 32) & 0xFF; > > This field is 16 bits in the spec, so the mask should be 0xFFFF I > think? > You're right, I'll fix it. > Maybe we should generalise the EXTRACT_BITS macro we use in ocxl :) > -- Alastair D'Silva Open Source Developer Linux Technology Centre, IBM Australia mob: 0423 762 819