summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstsp <stsp@openbsd.org>2019-10-28 18:08:08 +0000
committerstsp <stsp@openbsd.org>2019-10-28 18:08:08 +0000
commitb3a627c8840f28dc91c79aad1d4e8f699fcc5ebc (patch)
tree146720cc5711afaaf98417ab4aadb824f6bed445
parentRecognize IWM_DTS_MEASUREMENT_NOTIF_WIDE PHY_OP notification which will (diff)
downloadwireguard-openbsd-b3a627c8840f28dc91c79aad1d4e8f699fcc5ebc.tar.xz
wireguard-openbsd-b3a627c8840f28dc91c79aad1d4e8f699fcc5ebc.zip
Make iwm_stop_device() power down bus master DMA clocks on 7k devices only.
Patch by Imre Vadasz ok patrick@
-rw-r--r--sys/dev/pci/if_iwm.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c
index d83be95e4fc..8ae9f01cb02 100644
--- a/sys/dev/pci/if_iwm.c
+++ b/sys/dev/pci/if_iwm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwm.c,v 1.264 2019/10/28 18:06:04 stsp Exp $ */
+/* $OpenBSD: if_iwm.c,v 1.265 2019/10/28 18:08:08 stsp Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -1632,13 +1632,15 @@ iwm_stop_device(struct iwm_softc *sc)
for (qid = 0; qid < nitems(sc->txq); qid++)
iwm_reset_tx_ring(sc, &sc->txq[qid]);
- if (iwm_nic_lock(sc)) {
- /* Power-down device's busmaster DMA clocks */
- iwm_write_prph(sc, IWM_APMG_CLK_DIS_REG,
- IWM_APMG_CLK_VAL_DMA_CLK_RQT);
- iwm_nic_unlock(sc);
+ if (sc->sc_device_family == IWM_DEVICE_FAMILY_7000) {
+ if (iwm_nic_lock(sc)) {
+ /* Power-down device's busmaster DMA clocks */
+ iwm_write_prph(sc, IWM_APMG_CLK_DIS_REG,
+ IWM_APMG_CLK_VAL_DMA_CLK_RQT);
+ iwm_nic_unlock(sc);
+ }
+ DELAY(5);
}
- DELAY(5);
/* Make sure (redundant) we've released our request to stay awake */
IWM_CLRBITS(sc, IWM_CSR_GP_CNTRL,