PCI: Remove unused Optimized Buffer Flush/Fill support
My philosophy is unused code is dead code. And dead code is subject to bit
rot and is a likely source of bugs. Use it or lose it.
This reverts 48a92a8179
("PCI: add OBFF enable/disable support"),
removing these interfaces:
pci_enable_obff()
pci_disable_obff()
[bhelgaas: split to separate patch, also remove prototypes from pci.h]
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
Родитель
3ea8197e13
Коммит
ecc8635608
|
@ -2150,79 +2150,6 @@ void pci_disable_ido(struct pci_dev *dev, unsigned long type)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(pci_disable_ido);
|
EXPORT_SYMBOL(pci_disable_ido);
|
||||||
|
|
||||||
/**
|
|
||||||
* pci_enable_obff - enable optimized buffer flush/fill
|
|
||||||
* @dev: PCI device
|
|
||||||
* @type: type of signaling to use
|
|
||||||
*
|
|
||||||
* Try to enable @type OBFF signaling on @dev. It will try using WAKE#
|
|
||||||
* signaling if possible, falling back to message signaling only if
|
|
||||||
* WAKE# isn't supported. @type should indicate whether the PCIe link
|
|
||||||
* be brought out of L0s or L1 to send the message. It should be either
|
|
||||||
* %PCI_EXP_OBFF_SIGNAL_ALWAYS or %PCI_OBFF_SIGNAL_L0.
|
|
||||||
*
|
|
||||||
* If your device can benefit from receiving all messages, even at the
|
|
||||||
* power cost of bringing the link back up from a low power state, use
|
|
||||||
* %PCI_EXP_OBFF_SIGNAL_ALWAYS. Otherwise, use %PCI_OBFF_SIGNAL_L0 (the
|
|
||||||
* preferred type).
|
|
||||||
*
|
|
||||||
* RETURNS:
|
|
||||||
* Zero on success, appropriate error number on failure.
|
|
||||||
*/
|
|
||||||
int pci_enable_obff(struct pci_dev *dev, enum pci_obff_signal_type type)
|
|
||||||
{
|
|
||||||
u32 cap;
|
|
||||||
u16 ctrl;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
pcie_capability_read_dword(dev, PCI_EXP_DEVCAP2, &cap);
|
|
||||||
if (!(cap & PCI_EXP_DEVCAP2_OBFF_MASK))
|
|
||||||
return -ENOTSUPP; /* no OBFF support at all */
|
|
||||||
|
|
||||||
/* Make sure the topology supports OBFF as well */
|
|
||||||
if (dev->bus->self) {
|
|
||||||
ret = pci_enable_obff(dev->bus->self, type);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
pcie_capability_read_word(dev, PCI_EXP_DEVCTL2, &ctrl);
|
|
||||||
if (cap & PCI_EXP_DEVCAP2_OBFF_WAKE)
|
|
||||||
ctrl |= PCI_EXP_DEVCTL2_OBFF_WAKE_EN;
|
|
||||||
else {
|
|
||||||
switch (type) {
|
|
||||||
case PCI_EXP_OBFF_SIGNAL_L0:
|
|
||||||
if (!(ctrl & PCI_EXP_DEVCTL2_OBFF_WAKE_EN))
|
|
||||||
ctrl |= PCI_EXP_DEVCTL2_OBFF_MSGA_EN;
|
|
||||||
break;
|
|
||||||
case PCI_EXP_OBFF_SIGNAL_ALWAYS:
|
|
||||||
ctrl &= ~PCI_EXP_DEVCTL2_OBFF_WAKE_EN;
|
|
||||||
ctrl |= PCI_EXP_DEVCTL2_OBFF_MSGB_EN;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
WARN(1, "bad OBFF signal type\n");
|
|
||||||
return -ENOTSUPP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pcie_capability_write_word(dev, PCI_EXP_DEVCTL2, ctrl);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(pci_enable_obff);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* pci_disable_obff - disable optimized buffer flush/fill
|
|
||||||
* @dev: PCI device
|
|
||||||
*
|
|
||||||
* Disable OBFF on @dev.
|
|
||||||
*/
|
|
||||||
void pci_disable_obff(struct pci_dev *dev)
|
|
||||||
{
|
|
||||||
pcie_capability_clear_word(dev, PCI_EXP_DEVCTL2,
|
|
||||||
PCI_EXP_DEVCTL2_OBFF_WAKE_EN);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(pci_disable_obff);
|
|
||||||
|
|
||||||
static int pci_acs_enable;
|
static int pci_acs_enable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1002,13 +1002,6 @@ 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_enable_ido(struct pci_dev *dev, unsigned long type);
|
||||||
void pci_disable_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 = 0,
|
|
||||||
PCI_EXP_OBFF_SIGNAL_ALWAYS = 1,
|
|
||||||
};
|
|
||||||
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 */
|
/* For use by arch with custom probe code */
|
||||||
void set_pcie_port_type(struct pci_dev *pdev);
|
void set_pcie_port_type(struct pci_dev *pdev);
|
||||||
void set_pcie_hotplug_bridge(struct pci_dev *pdev);
|
void set_pcie_hotplug_bridge(struct pci_dev *pdev);
|
||||||
|
@ -1427,15 +1420,6 @@ 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)
|
static inline int pci_request_regions(struct pci_dev *dev, const char *res_name)
|
||||||
{
|
{
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче