|
|
@@ -28,6 +28,7 @@
|
|
|
#include <linux/pm_runtime.h>
|
|
|
#include <linux/firmware.h>
|
|
|
#include <linux/prefetch.h>
|
|
|
+#include <linux/pci-aspm.h>
|
|
|
#include <linux/ipv6.h>
|
|
|
#include <net/ip6_checksum.h>
|
|
|
|
|
|
@@ -7324,6 +7325,11 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
+ /* 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);
|
|
|
+
|
|
|
/* enable device (incl. PCI PM wakeup and hotplug setup) */
|
|
|
rc = pcim_enable_device(pdev);
|
|
|
if (rc < 0) {
|