summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorStefan Sperling <stsp@cvs.openbsd.org>2019-11-04 12:20:41 +0000
committerStefan Sperling <stsp@cvs.openbsd.org>2019-11-04 12:20:41 +0000
commit98f28102f38c427ad8bb32cf3d2bf1cd04d32f05 (patch)
tree255baade27964fa2ae721c17851666724f30f1c1 /sys
parentfc7e3a97599fc648071c61de8b189f5221a1031c (diff)
Don't send the BT coex config command to iwm 8k init firmware because newer
firmware versions will crash when we do that. Debugged together with patrick. ok patrick@
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_iwm.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c
index 135daeb696f..c5267bef3ae 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.273 2019/11/04 12:16:48 stsp Exp $ */
+/* $OpenBSD: if_iwm.c,v 1.274 2019/11/04 12:20:40 stsp Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -3349,6 +3349,15 @@ iwm_run_init_mvm_ucode(struct iwm_softc *sc, int justnvm)
return err;
}
+ if (sc->sc_device_family < IWM_DEVICE_FAMILY_8000) {
+ err = iwm_send_bt_init_conf(sc);
+ if (err) {
+ printf("%s: could not init bt coex (error %d)\n",
+ DEVNAME(sc), err);
+ return err;
+ }
+ }
+
if (justnvm) {
err = iwm_nvm_init(sc);
if (err) {
@@ -3363,10 +3372,6 @@ iwm_run_init_mvm_ucode(struct iwm_softc *sc, int justnvm)
return 0;
}
- err = iwm_send_bt_init_conf(sc);
- if (err)
- return err;
-
if (isset(sc->sc_enabled_capa, IWM_UCODE_TLV_CAPA_DQA_SUPPORT)) {
err = iwm_send_dqa_cmd(sc);
if (err)
@@ -6697,13 +6702,6 @@ iwm_init_hw(struct iwm_softc *sc)
if (!iwm_nic_lock(sc))
return EBUSY;
- err = iwm_send_bt_init_conf(sc);
- if (err) {
- printf("%s: could not init bt coex (error %d)\n",
- DEVNAME(sc), err);
- goto err;
- }
-
err = iwm_send_tx_ant_cfg(sc, iwm_fw_valid_tx_ant(sc));
if (err) {
printf("%s: could not init tx ant config (error %d)\n",
@@ -6725,6 +6723,13 @@ iwm_init_hw(struct iwm_softc *sc)
goto err;
}
+ err = iwm_send_bt_init_conf(sc);
+ if (err) {
+ printf("%s: could not init bt coex (error %d)\n",
+ DEVNAME(sc), err);
+ return err;
+ }
+
/* Add auxiliary station for scanning */
err = iwm_add_aux_sta(sc);
if (err) {