summaryrefslogtreecommitdiff
path: root/arch/parisc/include/asm
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2026-02-06 21:26:40 +0100
committerHelge Deller <deller@gmx.de>2026-02-07 00:45:19 +0100
commit0b3b90a0f971e4289367f172cfc36c934741b209 (patch)
tree1ba2bdd46dc3c302eb33a2b34baeae0433ea4d61 /arch/parisc/include/asm
parent5ff7842103f60b29b9907d25b371f65d5b40bbe4 (diff)
downloadlwn-0b3b90a0f971e4289367f172cfc36c934741b209.tar.gz
lwn-0b3b90a0f971e4289367f172cfc36c934741b209.zip
parisc: Add PDC PAT call to get free running 64-bit counter
PDC PAT defines this optional function. Testing on my C8000 workstation and a rp3440 server did not indicate that they provide such counter. Nevertheless, add the function since we should try to use such a counter if it's available. In Qemu it should be simple to add it. Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/include/asm')
-rw-r--r--arch/parisc/include/asm/pdcpat.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/parisc/include/asm/pdcpat.h b/arch/parisc/include/asm/pdcpat.h
index 84ac81b1adde..ec97eefa4ef6 100644
--- a/arch/parisc/include/asm/pdcpat.h
+++ b/arch/parisc/include/asm/pdcpat.h
@@ -179,6 +179,7 @@
#define PDC_PAT_PD 74L /* Protection Domain Info */
#define PDC_PAT_PD_GET_ADDR_MAP 0L /* Get Address Map */
#define PDC_PAT_PD_GET_PDC_INTERF_REV 1L /* Get PDC Interface Revisions */
+#define PDC_PAT_PD_GET_PLATFORM_COUNTER 10L /* Get 64-bit free running counter */
#define PDC_PAT_CAPABILITY_BIT_PDC_SERIALIZE (1UL << 0)
#define PDC_PAT_CAPABILITY_BIT_PDC_POLLING (1UL << 1)
@@ -373,9 +374,11 @@ extern int pdc_pat_pd_get_addr_map(unsigned long *actual_len, void *mem_addr,
unsigned long count, unsigned long offset);
extern int pdc_pat_pd_get_pdc_revisions(unsigned long *legacy_rev,
unsigned long *pat_rev, unsigned long *pdc_cap);
+extern int pdc_pat_pd_get_platform_counter(uint64_t **addr,
+ unsigned long *freq, unsigned long *uniq);
-extern int pdc_pat_io_pci_cfg_read(unsigned long pci_addr, int pci_size, u32 *val);
-extern int pdc_pat_io_pci_cfg_write(unsigned long pci_addr, int pci_size, u32 val);
+extern int pdc_pat_io_pci_cfg_read(unsigned long pci_addr, int pci_size, u32 *val);
+extern int pdc_pat_io_pci_cfg_write(unsigned long pci_addr, int pci_size, u32 val);
extern int pdc_pat_mem_pdt_info(struct pdc_pat_mem_retinfo *rinfo);
extern int pdc_pat_mem_pdt_cell_info(struct pdc_pat_mem_cell_pdt_retinfo *rinfo,