summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_iwm.c
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2019-11-04 12:16:49 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2019-11-04 12:16:49 +0000
commitfc7e3a97599fc648071c61de8b189f5221a1031c (patch)
treeadc44b80036b4f5e7a3db0b6611cce68b82663d2 /sys/dev/pci/if_iwm.c
parent85b82469af58b51764e735f471d5ad7ec4a823af (diff)
iwm API version -31 firmware and up will crash after load unless the driver
explicitly enables support for 31 queues in the GP_CTRL register. Coincidence? Accident? Bad joke? In any case this took us several days to figure out; the root cause was eventually identified by patrick@ ok patrick@
Diffstat (limited to 'sys/dev/pci/if_iwm.c')
-rw-r--r--sys/dev/pci/if_iwm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c
index 9a0ec318531..135daeb696f 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.272 2019/11/04 12:04:16 stsp Exp $ */
+/* $OpenBSD: if_iwm.c,v 1.273 2019/11/04 12:16:48 stsp Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -1845,7 +1845,9 @@ iwm_nic_tx_init(struct iwm_softc *sc)
txq->desc_dma.paddr >> 8);
}
- iwm_write_prph(sc, IWM_SCD_GP_CTRL, IWM_SCD_GP_CTRL_AUTO_ACTIVE_MODE);
+ iwm_set_bits_prph(sc, IWM_SCD_GP_CTRL,
+ IWM_SCD_GP_CTRL_AUTO_ACTIVE_MODE |
+ IWM_SCD_GP_CTRL_ENABLE_31_QUEUES);
iwm_nic_unlock(sc);