4cfd218855
Drivers may rely on pci_disable_link_state() having disabled certain ASPM link states. If OS can't control ASPM then pci_disable_link_state() turns into a no-op w/o informing the caller. The driver therefore may falsely assume the respective ASPM link states are disabled. Let pci_disable_link_state() propagate errors to the caller, enabling the caller to react accordingly. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
37 lines
889 B
C
37 lines
889 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* aspm.h
|
|
*
|
|
* PCI Express ASPM defines and function prototypes
|
|
*
|
|
* Copyright (C) 2007 Intel Corp.
|
|
* Zhang Yanmin (yanmin.zhang@intel.com)
|
|
* Shaohua Li (shaohua.li@intel.com)
|
|
*
|
|
* For more information, please consult the following manuals (look at
|
|
* http://www.pcisig.com/ for how to get them):
|
|
*
|
|
* PCI Express Specification
|
|
*/
|
|
|
|
#ifndef LINUX_ASPM_H
|
|
#define LINUX_ASPM_H
|
|
|
|
#include <linux/pci.h>
|
|
|
|
#define PCIE_LINK_STATE_L0S 1
|
|
#define PCIE_LINK_STATE_L1 2
|
|
#define PCIE_LINK_STATE_CLKPM 4
|
|
|
|
#ifdef CONFIG_PCIEASPM
|
|
int pci_disable_link_state(struct pci_dev *pdev, int state);
|
|
int pci_disable_link_state_locked(struct pci_dev *pdev, int state);
|
|
void pcie_no_aspm(void);
|
|
#else
|
|
static inline int pci_disable_link_state(struct pci_dev *pdev, int state)
|
|
{ return 0; }
|
|
static inline void pcie_no_aspm(void) { }
|
|
#endif
|
|
|
|
#endif /* LINUX_ASPM_H */
|