Skip to content

Commit

Permalink
PCI/ATS: Consolidate ATS declarations in linux/pci-ats.h
Browse files Browse the repository at this point in the history
Move ATS function prototypes from include/linux/pci.h to
include/linux/pci-ats.h as the ATS, PRI, and PASID interfaces are related
and are used only by the IOMMU drivers.  This effectively reverts
ff9bee8 ("PCI: Move ATS declarations to linux/pci.h so they're all
together").

Also, remove surplus forward declaration of struct pci_ats from
include/linux/pci.h, as it is no longer needed, since struct pci_ats was
embedded directly into struct pci_dev by d544d75 ("PCI: Embed ATS info
directly into struct pci_dev").

No functional changes intended.

Link: https://lore.kernel.org/r/20190914213032.22314-1-kw@linux.com
Signed-off-by: Krzysztof Wilczynski <kw@linux.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
  • Loading branch information
Krzysztof Wilczynski authored and Bjorn Helgaas committed Oct 15, 2019
1 parent e5adf79 commit b24d5c2
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 61 deletions.
75 changes: 28 additions & 47 deletions include/linux/pci-ats.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,73 +4,54 @@

#include <linux/pci.h>

#ifdef CONFIG_PCI_PRI
#ifdef CONFIG_PCI_ATS
/* Address Translation Service */
int pci_enable_ats(struct pci_dev *dev, int ps);
void pci_disable_ats(struct pci_dev *dev);
int pci_ats_queue_depth(struct pci_dev *dev);
int pci_ats_page_aligned(struct pci_dev *dev);
#else /* CONFIG_PCI_ATS */
static inline int pci_enable_ats(struct pci_dev *d, int ps)
{ return -ENODEV; }
static inline void pci_disable_ats(struct pci_dev *d) { }
static inline int pci_ats_queue_depth(struct pci_dev *d)
{ return -ENODEV; }
static inline int pci_ats_page_aligned(struct pci_dev *dev)
{ return 0; }
#endif /* CONFIG_PCI_ATS */

#ifdef CONFIG_PCI_PRI
int pci_enable_pri(struct pci_dev *pdev, u32 reqs);
void pci_disable_pri(struct pci_dev *pdev);
void pci_restore_pri_state(struct pci_dev *pdev);
int pci_reset_pri(struct pci_dev *pdev);
int pci_prg_resp_pasid_required(struct pci_dev *pdev);

#else /* CONFIG_PCI_PRI */

static inline int pci_enable_pri(struct pci_dev *pdev, u32 reqs)
{
return -ENODEV;
}

static inline void pci_disable_pri(struct pci_dev *pdev)
{
}

static inline void pci_restore_pri_state(struct pci_dev *pdev)
{
}

{ return -ENODEV; }
static inline void pci_disable_pri(struct pci_dev *pdev) { }
static inline void pci_restore_pri_state(struct pci_dev *pdev) { }
static inline int pci_reset_pri(struct pci_dev *pdev)
{
return -ENODEV;
}

{ return -ENODEV; }
static inline int pci_prg_resp_pasid_required(struct pci_dev *pdev)
{
return 0;
}
{ return 0; }
#endif /* CONFIG_PCI_PRI */

#ifdef CONFIG_PCI_PASID

int pci_enable_pasid(struct pci_dev *pdev, int features);
void pci_disable_pasid(struct pci_dev *pdev);
void pci_restore_pasid_state(struct pci_dev *pdev);
int pci_pasid_features(struct pci_dev *pdev);
int pci_max_pasids(struct pci_dev *pdev);

#else /* CONFIG_PCI_PASID */

#else /* CONFIG_PCI_PASID */
static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
{
return -EINVAL;
}

static inline void pci_disable_pasid(struct pci_dev *pdev)
{
}

static inline void pci_restore_pasid_state(struct pci_dev *pdev)
{
}

{ return -EINVAL; }
static inline void pci_disable_pasid(struct pci_dev *pdev) { }
static inline void pci_restore_pasid_state(struct pci_dev *pdev) { }
static inline int pci_pasid_features(struct pci_dev *pdev)
{
return -EINVAL;
}

{ return -EINVAL; }
static inline int pci_max_pasids(struct pci_dev *pdev)
{
return -EINVAL;
}
{ return -EINVAL; }
#endif /* CONFIG_PCI_PASID */


#endif /* LINUX_PCI_ATS_H*/
#endif /* LINUX_PCI_ATS_H */
14 changes: 0 additions & 14 deletions include/linux/pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,6 @@ struct irq_affinity;
struct pcie_link_state;
struct pci_vpd;
struct pci_sriov;
struct pci_ats;
struct pci_p2pdma;

/* The pci_dev structure describes PCI devices */
Expand Down Expand Up @@ -1778,19 +1777,6 @@ pci_alloc_irq_vectors(struct pci_dev *dev, unsigned int min_vecs,
NULL);
}

#ifdef CONFIG_PCI_ATS
/* Address Translation Service */
int pci_enable_ats(struct pci_dev *dev, int ps);
void pci_disable_ats(struct pci_dev *dev);
int pci_ats_queue_depth(struct pci_dev *dev);
int pci_ats_page_aligned(struct pci_dev *dev);
#else
static inline int pci_enable_ats(struct pci_dev *d, int ps) { return -ENODEV; }
static inline void pci_disable_ats(struct pci_dev *d) { }
static inline int pci_ats_queue_depth(struct pci_dev *d) { return -ENODEV; }
static inline int pci_ats_page_aligned(struct pci_dev *dev) { return 0; }
#endif

/* Include architecture-dependent settings and functions */

#include <asm/pci.h>
Expand Down

0 comments on commit b24d5c2

Please sign in to comment.