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_PRI
8 
9 int pci_enable_pri(struct pci_dev *pdev, u32 reqs);
10 void pci_disable_pri(struct pci_dev *pdev);
11 void pci_restore_pri_state(struct pci_dev *pdev);
12 int pci_reset_pri(struct pci_dev *pdev);
13 
14 #else /* CONFIG_PCI_PRI */
15 
pci_enable_pri(struct pci_dev * pdev,u32 reqs)16 static inline int pci_enable_pri(struct pci_dev *pdev, u32 reqs)
17 {
18 	return -ENODEV;
19 }
20 
pci_disable_pri(struct pci_dev * pdev)21 static inline void pci_disable_pri(struct pci_dev *pdev)
22 {
23 }
24 
pci_restore_pri_state(struct pci_dev * pdev)25 static inline void pci_restore_pri_state(struct pci_dev *pdev)
26 {
27 }
28 
pci_reset_pri(struct pci_dev * pdev)29 static inline int pci_reset_pri(struct pci_dev *pdev)
30 {
31 	return -ENODEV;
32 }
33 
34 #endif /* CONFIG_PCI_PRI */
35 
36 #ifdef CONFIG_PCI_PASID
37 
38 int pci_enable_pasid(struct pci_dev *pdev, int features);
39 void pci_disable_pasid(struct pci_dev *pdev);
40 void pci_restore_pasid_state(struct pci_dev *pdev);
41 int pci_pasid_features(struct pci_dev *pdev);
42 int pci_max_pasids(struct pci_dev *pdev);
43 
44 #else  /* CONFIG_PCI_PASID */
45 
pci_enable_pasid(struct pci_dev * pdev,int features)46 static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
47 {
48 	return -EINVAL;
49 }
50 
pci_disable_pasid(struct pci_dev * pdev)51 static inline void pci_disable_pasid(struct pci_dev *pdev)
52 {
53 }
54 
pci_restore_pasid_state(struct pci_dev * pdev)55 static inline void pci_restore_pasid_state(struct pci_dev *pdev)
56 {
57 }
58 
pci_pasid_features(struct pci_dev * pdev)59 static inline int pci_pasid_features(struct pci_dev *pdev)
60 {
61 	return -EINVAL;
62 }
63 
pci_max_pasids(struct pci_dev * pdev)64 static inline int pci_max_pasids(struct pci_dev *pdev)
65 {
66 	return -EINVAL;
67 }
68 
69 #endif /* CONFIG_PCI_PASID */
70 
71 
72 #endif /* LINUX_PCI_ATS_H*/
73