]> asedeno.scripts.mit.edu Git - linux.git/blob - include/linux/pci-ats.h
67de3a9499bb4659d34850cfbc26d3f069e018f9
[linux.git] / include / linux / pci-ats.h
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 int pci_enable_ats(struct pci_dev *dev, int ps);
10 void pci_disable_ats(struct pci_dev *dev);
11 int pci_ats_queue_depth(struct pci_dev *dev);
12 int pci_ats_page_aligned(struct pci_dev *dev);
13 #else /* CONFIG_PCI_ATS */
14 static inline int pci_enable_ats(struct pci_dev *d, int ps)
15 { return -ENODEV; }
16 static inline void pci_disable_ats(struct pci_dev *d) { }
17 static inline int pci_ats_queue_depth(struct pci_dev *d)
18 { return -ENODEV; }
19 static inline int pci_ats_page_aligned(struct pci_dev *dev)
20 { return 0; }
21 #endif /* CONFIG_PCI_ATS */
22
23 #ifdef CONFIG_PCI_PRI
24 int pci_enable_pri(struct pci_dev *pdev, u32 reqs);
25 void pci_disable_pri(struct pci_dev *pdev);
26 void pci_restore_pri_state(struct pci_dev *pdev);
27 int pci_reset_pri(struct pci_dev *pdev);
28 int pci_prg_resp_pasid_required(struct pci_dev *pdev);
29 #else /* CONFIG_PCI_PRI */
30 static inline int pci_enable_pri(struct pci_dev *pdev, u32 reqs)
31 { return -ENODEV; }
32 static inline void pci_disable_pri(struct pci_dev *pdev) { }
33 static inline void pci_restore_pri_state(struct pci_dev *pdev) { }
34 static inline int pci_reset_pri(struct pci_dev *pdev)
35 { return -ENODEV; }
36 static inline int pci_prg_resp_pasid_required(struct pci_dev *pdev)
37 { return 0; }
38 #endif /* CONFIG_PCI_PRI */
39
40 #ifdef CONFIG_PCI_PASID
41 int pci_enable_pasid(struct pci_dev *pdev, int features);
42 void pci_disable_pasid(struct pci_dev *pdev);
43 void pci_restore_pasid_state(struct pci_dev *pdev);
44 int pci_pasid_features(struct pci_dev *pdev);
45 int pci_max_pasids(struct pci_dev *pdev);
46 #else /* CONFIG_PCI_PASID */
47 static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
48 { return -EINVAL; }
49 static inline void pci_disable_pasid(struct pci_dev *pdev) { }
50 static inline void pci_restore_pasid_state(struct pci_dev *pdev) { }
51 static inline int pci_pasid_features(struct pci_dev *pdev)
52 { return -EINVAL; }
53 static inline int pci_max_pasids(struct pci_dev *pdev)
54 { return -EINVAL; }
55 #endif /* CONFIG_PCI_PASID */
56
57 #endif /* LINUX_PCI_ATS_H */