PCI: add OBFF enable/disable support

OBFF (optimized buffer flush/fill), where supported, can help improve
energy efficiency by giving devices information about when interrupts
and other activity will have a reduced power impact.  It requires
support from both the device and system (i.e. not only does the device
need to respond to OBFF messages, but the platform must be capable of
generating and routing them to the end point).

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
Jesse Barnes
2011-01-10 12:46:36 -08:00
parent b48d4425b6
commit 48a92a8179
3 changed files with 114 additions and 0 deletions

View File

@ -833,6 +833,13 @@ static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state,
void pci_enable_ido(struct pci_dev *dev, unsigned long type);
void pci_disable_ido(struct pci_dev *dev, unsigned long type);
enum pci_obff_signal_type {
PCI_EXP_OBFF_SIGNAL_L0,
PCI_EXP_OBFF_SIGNAL_ALWAYS,
};
int pci_enable_obff(struct pci_dev *dev, enum pci_obff_signal_type);
void pci_disable_obff(struct pci_dev *dev);
/* For use by arch with custom probe code */
void set_pcie_port_type(struct pci_dev *pdev);
void set_pcie_hotplug_bridge(struct pci_dev *pdev);
@ -1220,6 +1227,15 @@ static inline void pci_disable_ido(struct pci_dev *dev, unsigned long type)
{
}
static inline int pci_enable_obff(struct pci_dev *dev, unsigned long type)
{
return 0;
}
static inline void pci_disable_obff(struct pci_dev *dev)
{
}
static inline int pci_request_regions(struct pci_dev *dev, const char *res_name)
{
return -EIO;