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 int pci_prg_resp_pasid_required(struct pci_dev *pdev);
44 
45 #else  /* CONFIG_PCI_PASID */
46 
pci_enable_pasid(struct pci_dev * pdev,int features)47 static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
48 {
49 	return -EINVAL;
50 }
51 
pci_disable_pasid(struct pci_dev * pdev)52 static inline void pci_disable_pasid(struct pci_dev *pdev)
53 {
54 }
55 
pci_restore_pasid_state(struct pci_dev * pdev)56 static inline void pci_restore_pasid_state(struct pci_dev *pdev)
57 {
58 }
59 
pci_pasid_features(struct pci_dev * pdev)60 static inline int pci_pasid_features(struct pci_dev *pdev)
61 {
62 	return -EINVAL;
63 }
64 
pci_max_pasids(struct pci_dev * pdev)65 static inline int pci_max_pasids(struct pci_dev *pdev)
66 {
67 	return -EINVAL;
68 }
69 
pci_prg_resp_pasid_required(struct pci_dev * pdev)70 static inline int pci_prg_resp_pasid_required(struct pci_dev *pdev)
71 {
72 	return 0;
73 }
74 #endif /* CONFIG_PCI_PASID */
75 
76 
77 #endif /* LINUX_PCI_ATS_H*/
78