diff options
Diffstat (limited to 'drivers/net/r8169.c')
| -rw-r--r-- | drivers/net/r8169.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index ef2133b16f8..7ffdb80adf4 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -25,6 +25,7 @@  #include <linux/dma-mapping.h>  #include <linux/pm_runtime.h>  #include <linux/firmware.h> +#include <linux/pci-aspm.h>  #include <asm/system.h>  #include <asm/io.h> @@ -3020,6 +3021,11 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	mii->reg_num_mask = 0x1f;  	mii->supports_gmii = !!(cfg->features & RTL_FEATURE_GMII); +	/* disable ASPM completely as that cause random device stop working +	 * problems as well as full system hangs for some PCIe devices users */ +	pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 | +				     PCIE_LINK_STATE_CLKPM); +  	/* enable device (incl. PCI PM wakeup and hotplug setup) */  	rc = pci_enable_device(pdev);  	if (rc < 0) {  |