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