1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * aspm.h 4 * 5 * PCI Express ASPM defines and function prototypes 6 * 7 * Copyright (C) 2007 Intel Corp. 8 * Zhang Yanmin (yanmin.zhang@intel.com) 9 * Shaohua Li (shaohua.li@intel.com) 10 * 11 * For more information, please consult the following manuals (look at 12 * http://www.pcisig.com/ for how to get them): 13 * 14 * PCI Express Specification 15 */ 16 17 #ifndef LINUX_ASPM_H 18 #define LINUX_ASPM_H 19 20 #include <linux/pci.h> 21 22 #define PCIE_LINK_STATE_L0S 1 23 #define PCIE_LINK_STATE_L1 2 24 #define PCIE_LINK_STATE_CLKPM 4 25 26 #ifdef CONFIG_PCIEASPM 27 void pcie_aspm_init_link_state(struct pci_dev *pdev); 28 void pcie_aspm_exit_link_state(struct pci_dev *pdev); 29 void pcie_aspm_pm_state_change(struct pci_dev *pdev); 30 void pcie_aspm_powersave_config_link(struct pci_dev *pdev); 31 void pci_disable_link_state(struct pci_dev *pdev, int state); 32 void pci_disable_link_state_locked(struct pci_dev *pdev, int state); 33 void pcie_no_aspm(void); 34 #else pcie_aspm_init_link_state(struct pci_dev * pdev)35static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) 36 { 37 } pcie_aspm_exit_link_state(struct pci_dev * pdev)38static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) 39 { 40 } pcie_aspm_pm_state_change(struct pci_dev * pdev)41static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) 42 { 43 } pcie_aspm_powersave_config_link(struct pci_dev * pdev)44static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) 45 { 46 } pci_disable_link_state(struct pci_dev * pdev,int state)47static inline void pci_disable_link_state(struct pci_dev *pdev, int state) 48 { 49 } pcie_no_aspm(void)50static inline void pcie_no_aspm(void) 51 { 52 } 53 #endif 54 55 #ifdef CONFIG_PCIEASPM_DEBUG /* this depends on CONFIG_PCIEASPM */ 56 void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev); 57 void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev); 58 #else pcie_aspm_create_sysfs_dev_files(struct pci_dev * pdev)59static inline void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev) 60 { 61 } pcie_aspm_remove_sysfs_dev_files(struct pci_dev * pdev)62static inline void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev) 63 { 64 } 65 #endif 66 #endif /* LINUX_ASPM_H */ 67