|
@@ -16,6 +16,7 @@
|
|
|
|
|
|
#include <linux/io.h>
|
|
#include <linux/io.h>
|
|
#include <asm/unaligned.h>
|
|
#include <asm/unaligned.h>
|
|
|
|
+#include <linux/pci.h>
|
|
|
|
|
|
#include "ath9k.h"
|
|
#include "ath9k.h"
|
|
#include "initvals.h"
|
|
#include "initvals.h"
|
|
@@ -4298,3 +4299,16 @@ void ath_gen_timer_isr(struct ath_hw *ah)
|
|
timer->trigger(timer->arg);
|
|
timer->trigger(timer->arg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Primitive to disable ASPM
|
|
|
|
+ */
|
|
|
|
+void ath_pcie_aspm_disable(struct ath_softc *sc)
|
|
|
|
+{
|
|
|
|
+ struct pci_dev *pdev = to_pci_dev(sc->dev);
|
|
|
|
+ u8 aspm;
|
|
|
|
+
|
|
|
|
+ pci_read_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, &aspm);
|
|
|
|
+ aspm &= ~(ATH_PCIE_CAP_LINK_L0S | ATH_PCIE_CAP_LINK_L1);
|
|
|
|
+ pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm);
|
|
|
|
+}
|