forked from mirrors/linux
		
	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>
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			889 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 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 */
 |