Newer iwx(4) firmware doesn't like the DQA command anymore.
authorstsp <stsp@openbsd.org>
Sun, 18 Jul 2021 12:03:57 +0000 (12:03 +0000)
committerstsp <stsp@openbsd.org>
Sun, 18 Jul 2021 12:03:57 +0000 (12:03 +0000)
Check whether firmware advertises DQA support before sending the DQA
command during device initialization. Newer firmware will raise a
fatal error otherwise. The Tx queue API has been redesigned yet again.

sys/dev/pci/if_iwx.c

index cd019fc..0183a8b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_iwx.c,v 1.65 2021/07/18 11:56:11 stsp Exp $        */
+/*     $OpenBSD: if_iwx.c,v 1.66 2021/07/18 12:03:57 stsp Exp $        */
 
 /*
  * Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -7349,9 +7349,11 @@ iwx_init_hw(struct iwx_softc *sc)
        if (err)
                return err;
 
-       err = iwx_send_dqa_cmd(sc);
-       if (err)
-               return err;
+       if (isset(sc->sc_enabled_capa, IWX_UCODE_TLV_CAPA_DQA_SUPPORT)) {
+               err = iwx_send_dqa_cmd(sc);
+               if (err)
+                       return err;
+       }
 
        /* Add auxiliary station for scanning */
        err = iwx_add_aux_sta(sc);