diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2019-11-04 12:20:41 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2019-11-04 12:20:41 +0000 |
commit | 98f28102f38c427ad8bb32cf3d2bf1cd04d32f05 (patch) | |
tree | 255baade27964fa2ae721c17851666724f30f1c1 /sys | |
parent | fc7e3a97599fc648071c61de8b189f5221a1031c (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.c | 29 |
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) { |