1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef LINUX_PCI_ATS_H |
3 | #define LINUX_PCI_ATS_H |
4 | |
5 | #include <linux/pci.h> |
6 | |
7 | #ifdef CONFIG_PCI_ATS |
8 | /* Address Translation Service */ |
9 | bool pci_ats_supported(struct pci_dev *dev); |
10 | int pci_enable_ats(struct pci_dev *dev, int ps); |
11 | void pci_disable_ats(struct pci_dev *dev); |
12 | int pci_ats_queue_depth(struct pci_dev *dev); |
13 | int pci_ats_page_aligned(struct pci_dev *dev); |
14 | #else /* CONFIG_PCI_ATS */ |
15 | static inline bool pci_ats_supported(struct pci_dev *d) |
16 | { return false; } |
17 | static inline int pci_enable_ats(struct pci_dev *d, int ps) |
18 | { return -ENODEV; } |
19 | static inline void pci_disable_ats(struct pci_dev *d) { } |
20 | static inline int pci_ats_queue_depth(struct pci_dev *d) |
21 | { return -ENODEV; } |
22 | static inline int pci_ats_page_aligned(struct pci_dev *dev) |
23 | { return 0; } |
24 | #endif /* CONFIG_PCI_ATS */ |
25 | |
26 | #ifdef CONFIG_PCI_PRI |
27 | int pci_enable_pri(struct pci_dev *pdev, u32 reqs); |
28 | void pci_disable_pri(struct pci_dev *pdev); |
29 | int pci_reset_pri(struct pci_dev *pdev); |
30 | int pci_prg_resp_pasid_required(struct pci_dev *pdev); |
31 | bool pci_pri_supported(struct pci_dev *pdev); |
32 | #else |
33 | static inline bool pci_pri_supported(struct pci_dev *pdev) |
34 | { return false; } |
35 | #endif /* CONFIG_PCI_PRI */ |
36 | |
37 | #ifdef CONFIG_PCI_PASID |
38 | int pci_enable_pasid(struct pci_dev *pdev, int features); |
39 | void pci_disable_pasid(struct pci_dev *pdev); |
40 | int pci_pasid_features(struct pci_dev *pdev); |
41 | int pci_max_pasids(struct pci_dev *pdev); |
42 | #else /* CONFIG_PCI_PASID */ |
43 | static inline int pci_enable_pasid(struct pci_dev *pdev, int features) |
44 | { return -EINVAL; } |
45 | static inline void pci_disable_pasid(struct pci_dev *pdev) { } |
46 | static inline int pci_pasid_features(struct pci_dev *pdev) |
47 | { return -EINVAL; } |
48 | static inline int pci_max_pasids(struct pci_dev *pdev) |
49 | { return -EINVAL; } |
50 | #endif /* CONFIG_PCI_PASID */ |
51 | |
52 | #endif /* LINUX_PCI_ATS_H */ |
53 | |