]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - arch/x86/events/amd/iommu.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
[mirror_ubuntu-jammy-kernel.git] / arch / x86 / events / amd / iommu.h
CommitLineData
d2912cb1 1/* SPDX-License-Identifier: GPL-2.0-only */
7be6296f
SS
2/*
3 * Copyright (C) 2013 Advanced Micro Devices, Inc.
4 *
5 * Author: Steven Kinney <Steven.Kinney@amd.com>
6 * Author: Suravee Suthikulpanit <Suraveee.Suthikulpanit@amd.com>
7be6296f
SS
7 */
8
9#ifndef _PERF_EVENT_AMD_IOMMU_H_
10#define _PERF_EVENT_AMD_IOMMU_H_
11
12/* iommu pc mmio region register indexes */
13#define IOMMU_PC_COUNTER_REG 0x00
14#define IOMMU_PC_COUNTER_SRC_REG 0x08
15#define IOMMU_PC_PASID_MATCH_REG 0x10
16#define IOMMU_PC_DOMID_MATCH_REG 0x18
17#define IOMMU_PC_DEVID_MATCH_REG 0x20
18#define IOMMU_PC_COUNTER_REPORT_REG 0x28
19
20/* maximun specified bank/counters */
21#define PC_MAX_SPEC_BNKS 64
22#define PC_MAX_SPEC_CNTRS 16
23
1650dfd1
SS
24struct amd_iommu;
25
7be6296f 26/* amd_iommu_init.c external support functions */
6b9376e3
SS
27extern int amd_iommu_get_num_iommus(void);
28
7be6296f
SS
29extern bool amd_iommu_pc_supported(void);
30
f5863a00 31extern u8 amd_iommu_pc_get_max_banks(unsigned int idx);
7be6296f 32
f5863a00 33extern u8 amd_iommu_pc_get_max_counters(unsigned int idx);
7be6296f 34
1650dfd1
SS
35extern int amd_iommu_pc_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr,
36 u8 fxn, u64 *value);
37
38extern int amd_iommu_pc_get_reg(struct amd_iommu *iommu, u8 bank, u8 cntr,
39 u8 fxn, u64 *value);
7be6296f 40
f5863a00
SS
41extern struct amd_iommu *get_amd_iommu(int idx);
42
7be6296f 43#endif /*_PERF_EVENT_AMD_IOMMU_H_*/