mirror-linux/Documentation/PCI
Chengwen Feng abdd2a8653 PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM
pcie_tph_get_cpu_st() uses the Query Cache Locality Features _DSM [1]
to retrieve the TPH Steering Tag for memory associated with the CPU
identified by its "cpu_uid" parameter, a Linux logical CPU ID.

The _DSM requires an ACPI Processor UID, which pcie_tph_get_cpu_st()
previously assumed was the same as the Linux logical CPU ID. This is
true on x86 but not on arm64, so pcie_tph_get_cpu_st() returned the
wrong Steering Tag, resulting in incorrect TPH functionality on arm64.

Convert the Linux logical CPU ID to the ACPI Processor UID with
acpi_get_cpu_uid() before passing it to the _DSM. Additionally, rename
the pcie_tph_get_cpu_st() parameter from "cpu_uid" to "cpu" to reflect
that it represents a logical CPU ID (not an ACPI Processor UID).

[1] According to ECN_TPH-ST_Revision_20200924
    (https://members.pcisig.com/wg/PCI-SIG/document/15470), the input
    is defined as: "If the target is a processor, then this field
    represents the ACPI Processor UID of the processor as specified in
    the MADT. If the target is a processor container, then this field
    represents the ACPI Processor UID of the processor container as
    specified in the PPTT."

Fixes: d2e8a34876 ("PCI/TPH: Add Steering Tag support")
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Reviewed-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260401081640.26875-9-fengchengwen@huawei.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2026-04-06 16:55:16 +02:00
..
controller PCI: rcar-gen4: Document how to obtain platform firmware 2025-05-21 12:02:59 +00:00
endpoint Merge branch 'pci/controller/dwc' 2026-02-06 17:09:34 -06:00
acpi-info.rst docs: PCI: Replace non-breaking spaces to avoid PDF issues 2021-06-17 13:22:33 -06:00
boot-interrupts.rst docs: PCI: Fix typos 2023-12-28 17:37:36 -06:00
index.rst PCI: rcar-gen4: Document how to obtain platform firmware 2025-05-21 12:02:59 +00:00
msi-howto.rst Documentation: PCI: Fix typos in msi-howto.rst 2025-12-29 11:22:08 -06:00
pci-error-recovery.rst net: ethernet: neterion: s2io: remove unused driver 2026-01-28 20:08:07 -08:00
pci-iov-howto.rst PCI/doc: Convert examples to generic power management 2022-07-11 18:17:29 -05:00
pci.rst Documentation: PCI: fix typo in pci.rst 2024-09-10 15:30:42 -06:00
pcieaer-howto.rst Documentation: PCI: Document PCIe TLP Header decoder for AER messages 2026-03-23 15:58:02 -05:00
pciebus-howto.rst PCI: Protect Link Control 2 Register with RMW locking 2024-10-23 16:50:02 -05:00
sysfs-pci.rst PCI: Remove pci_mmap_page_range() wrapper 2022-07-29 12:08:44 -05:00
tph.rst PCI/TPH: Pass ACPI Processor UID to Cache Locality _DSM 2026-04-06 16:55:16 +02:00