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 16 static inline int pci_enable_pri(struct pci_dev *pdev, u32 reqs) 17 { 18 return -ENODEV; 19 } 20 21 static inline void pci_disable_pri(struct pci_dev *pdev) 22 { 23 } 24 25 static inline void pci_restore_pri_state(struct pci_dev *pdev) 26 { 27 } 28 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 47 static inline int pci_enable_pasid(struct pci_dev *pdev, int features) 48 { 49 return -EINVAL; 50 } 51 52 static inline void pci_disable_pasid(struct pci_dev *pdev) 53 { 54 } 55 56 static inline void pci_restore_pasid_state(struct pci_dev *pdev) 57 { 58 } 59 60 static inline int pci_pasid_features(struct pci_dev *pdev) 61 { 62 return -EINVAL; 63 } 64 65 static inline int pci_max_pasids(struct pci_dev *pdev) 66 { 67 return -EINVAL; 68 } 69 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