[PATCH v2 1/2] platform/x86/intel/pmt: allow user offset for PMT callbacks
Andy Shevchenko
andriy.shevchenko at linux.intel.com
Wed Nov 13 10:26:07 UTC 2024
On Tue, Nov 12, 2024 at 11:30:34AM -0500, Michael J. Ruhl wrote:
> Usage of the telem sysfs file allows for partial reads at
> an offset.
>
> The current callback method returns the buffer starting
> from offset 0 only.
>
> Include the requested offset in the callback.
> Update the necessary address calculations with the offset.
>
> Note: offset addition is moved from the caller to the local
> usage. For non-callback usage this unchanged behavior.
...
> int pmt_telem_read_mmio(struct pci_dev *pdev, struct pmt_callbacks *cb, u32 guid, void *buf,
> - void __iomem *addr, u32 count)
> + void __iomem *addr, loff_t off, u32 count)
> {
> if (cb && cb->read_telem)
> - return cb->read_telem(pdev, guid, buf, count);
> + return cb->read_telem(pdev, guid, buf, off, count);
Also possible instead of the below changes is to add here
addr += off;
> if (guid == GUID_SPR_PUNIT)
> /* PUNIT on SPR only supports aligned 64-bit read */
> - return pmt_memcpy64_fromio(buf, addr, count);
> + return pmt_memcpy64_fromio(buf, addr + off, count);
>
> - memcpy_fromio(buf, addr, count);
> + memcpy_fromio(buf, addr + off, count);
>
> return count;
> }
--
With Best Regards,
Andy Shevchenko
More information about the Intel-xe
mailing list