]>
git.ipfire.org Git - thirdparty/kernel/stable.git/blob - include/linux/acpi_iort.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (C) 2016, Semihalf
4 * Author: Tomasz Nowicki <tn@semihalf.com>
7 #ifndef __ACPI_IORT_H__
8 #define __ACPI_IORT_H__
10 #include <linux/acpi.h>
11 #include <linux/fwnode.h>
12 #include <linux/irqdomain.h>
14 #define IORT_IRQ_MASK(irq) (irq & 0xffffffffULL)
15 #define IORT_IRQ_TRIGGER_MASK(irq) ((irq >> 32) & 0xffffffffULL)
18 * PMCG model identifiers for use in smmu pmu driver. Please note
19 * that this is purely for the use of software and has nothing to
20 * do with hardware or with IORT specification.
22 #define IORT_SMMU_V3_PMCG_GENERIC 0x00000000 /* Generic SMMUv3 PMCG */
23 #define IORT_SMMU_V3_PMCG_HISI_HIP08 0x00000001 /* HiSilicon HIP08 PMCG */
25 int iort_register_domain_token(int trans_id
, phys_addr_t base
,
26 struct fwnode_handle
*fw_node
);
27 void iort_deregister_domain_token(int trans_id
);
28 struct fwnode_handle
*iort_find_domain_token(int trans_id
);
29 #ifdef CONFIG_ACPI_IORT
30 void acpi_iort_init(void);
31 u32
iort_msi_map_rid(struct device
*dev
, u32 req_id
);
32 struct irq_domain
*iort_get_device_domain(struct device
*dev
, u32 req_id
);
33 void acpi_configure_pmsi_domain(struct device
*dev
);
34 int iort_pmsi_get_dev_id(struct device
*dev
, u32
*dev_id
);
36 void iort_dma_setup(struct device
*dev
, u64
*dma_addr
, u64
*size
);
37 const struct iommu_ops
*iort_iommu_configure(struct device
*dev
);
38 int iort_iommu_msi_get_resv_regions(struct device
*dev
, struct list_head
*head
);
40 static inline void acpi_iort_init(void) { }
41 static inline u32
iort_msi_map_rid(struct device
*dev
, u32 req_id
)
43 static inline struct irq_domain
*iort_get_device_domain(struct device
*dev
,
46 static inline void acpi_configure_pmsi_domain(struct device
*dev
) { }
48 static inline void iort_dma_setup(struct device
*dev
, u64
*dma_addr
,
50 static inline const struct iommu_ops
*iort_iommu_configure(
54 int iort_iommu_msi_get_resv_regions(struct device
*dev
, struct list_head
*head
)
58 #endif /* __ACPI_IORT_H__ */