pci-ats.h 1.8 KB

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