Revert previous; Turns out the start_hw() functions don't always
authorstsp <stsp@openbsd.org>
Fri, 20 Aug 2021 00:22:54 +0000 (00:22 +0000)
committerstsp <stsp@openbsd.org>
Fri, 20 Aug 2021 00:22:54 +0000 (00:22 +0000)
work right during the resume path. To be revisited later.

sys/dev/pci/if_iwm.c
sys/dev/pci/if_iwx.c

index cfa9734..c1e641f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_iwm.c,v 1.359 2021/08/19 18:45:11 stsp Exp $       */
+/*     $OpenBSD: if_iwm.c,v 1.360 2021/08/20 00:22:54 stsp Exp $       */
 
 /*
  * Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -11425,7 +11425,13 @@ iwm_resume(struct iwm_softc *sc)
        reg = pci_conf_read(sc->sc_pct, sc->sc_pcitag, 0x40);
        pci_conf_write(sc->sc_pct, sc->sc_pcitag, 0x40, reg & ~0xff00);
 
-       return iwm_start_hw(sc);
+       /* reconfigure the MSI-X mapping to get the correct IRQ for rfkill */
+       iwm_conf_msix_hw(sc, 0);
+
+       iwm_enable_rfkill_int(sc);
+       iwm_check_rfkill(sc);
+
+       return iwm_prepare_card_hw(sc);
 }
 
 int
index dfe5373..701d302 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_iwx.c,v 1.93 2021/08/19 18:45:11 stsp Exp $        */
+/*     $OpenBSD: if_iwx.c,v 1.94 2021/08/20 00:22:54 stsp Exp $        */
 
 /*
  * Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -9556,7 +9556,13 @@ iwx_resume(struct iwx_softc *sc)
        reg = pci_conf_read(sc->sc_pct, sc->sc_pcitag, 0x40);
        pci_conf_write(sc->sc_pct, sc->sc_pcitag, 0x40, reg & ~0xff00);
 
-       return iwx_start_hw(sc);
+       /* reconfigure the MSI-X mapping to get the correct IRQ for rfkill */
+       iwx_conf_msix_hw(sc, 0);
+
+       iwx_enable_rfkill_int(sc);
+       iwx_check_rfkill(sc);
+
+       return iwx_prepare_card_hw(sc);
 }
 
 int