1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright IBM Corp. 2020
4  *
5  * Author(s):
6  *   Niklas Schnelle <[email protected]>
7  *
8  */
9 
10 #ifndef __S390_PCI_IOV_H
11 #define __S390_PCI_IOV_H
12 
13 #include <linux/pci.h>
14 
15 #ifdef CONFIG_PCI_IOV
16 void zpci_iov_remove_virtfn(struct pci_dev *pdev, int vfn);
17 
18 void zpci_iov_map_resources(struct pci_dev *pdev);
19 
20 int zpci_iov_setup_virtfn(struct zpci_bus *zbus, struct pci_dev *virtfn, int vfn);
21 
22 struct pci_dev *zpci_iov_find_parent_pf(struct zpci_bus *zbus, struct zpci_dev *zdev);
23 
24 #else /* CONFIG_PCI_IOV */
zpci_iov_remove_virtfn(struct pci_dev * pdev,int vfn)25 static inline void zpci_iov_remove_virtfn(struct pci_dev *pdev, int vfn) {}
26 
zpci_iov_map_resources(struct pci_dev * pdev)27 static inline void zpci_iov_map_resources(struct pci_dev *pdev) {}
28 
zpci_iov_setup_virtfn(struct zpci_bus * zbus,struct pci_dev * virtfn,int vfn)29 static inline int zpci_iov_setup_virtfn(struct zpci_bus *zbus, struct pci_dev *virtfn, int vfn)
30 {
31 	return 0;
32 }
33 
zpci_iov_find_parent_pf(struct zpci_bus * zbus,struct zpci_dev * zdev)34 static inline struct pci_dev *zpci_iov_find_parent_pf(struct zpci_bus *zbus, struct zpci_dev *zdev)
35 {
36 	return NULL;
37 }
38 #endif /* CONFIG_PCI_IOV */
39 #endif /* __S390_PCI_IOV_h */
40