Re: sys/qwz: shutdown firmware after autoconf

Marcus Glocker <[email protected]>
Newsgroups gmane.os.openbsd.tech
Message-ID <q4e525c2cfnlam463x63iocriwm3cyitp3pw76p33dbkuwkfd4@ztkdzlpu4lvc>
On Tue, Jun 02, 2026 at 08:53:49AM +0200, Stefan Sperling wrote:

> On Tue, Jun 02, 2026 at 05:53:35AM +0200, Marcus Glocker wrote:
> > I am also chasing why upon boot my 5GHz AP always works, while my 2.4GHz
> > AP only intermittently works.  In the most cases I can associate to it,
> > but I won't get an IP assigned.  In a few cases I will, and then also
> > traffic is flowing.  I am also playing around with reverting the RX QoS
> > path which we have recently introduced.  It seems to increase the
> > chances that my 2.4GHz AP will work, but it still not reliable.
> > 
> > The entire situation is a bit puzzling to me currently ...
> 
> If the interface gets into RUN state, but the WPA2 4-way handshake is not
> starting then try unmasking data interrupts in software earlier.
> 
> (I've already sent the changes below as part of my qwx roaming fix.)

Thank you for your suggestion.  I've ported the IRQ part to qwz, but
unfortunately it doesn't change the earlier described behavior in any
way in my case.  I will need to investigate further ...
  
> M  sys/dev/ic/qwx.c  |  1+  10-
> 
> 1 file changed, 1 insertion(+), 10 deletions(-)
> 
> commit - ca362689551c3ca46673929394339d3a1d8b4983
> commit + c40dfed62a8443b2b6040ddb698e55d7d5474256
> blob - e10ad8ce38428ef4a0dd316e271561c1b91c5f7d
> blob + fb167f3d16df524472c0cf9dabeafce6fc8ec0eb
> --- sys/dev/ic/qwx.c
> +++ sys/dev/ic/qwx.c
> @@ -323,6 +323,7 @@ qwx_init(struct ifnet *ifp)
>  			return error;
>  
>  		ifp->if_flags |= IFF_RUNNING;
> +		sc->ops.irq_enable(sc);
>  		ieee80211_begin_scan(ifp);
>  	}
>  
> @@ -20926,7 +20927,6 @@ qwx_core_qmi_firmware_ready(struct qwx_softc *sc)
>  		goto err_core_stop;
>  	}
>  
> -	sc->ops.irq_enable(sc);
>  #if 0
>  	mutex_unlock(&ab->core_lock);
>  #endif
> @@ -27013,13 +27013,6 @@ qwx_assoc(struct qwx_softc *sc)
>  	IEEE80211_ADDR_COPY(arvif->bssid, ni->ni_bssid);
>  	sc->bss_peer_id = nq->peer_id;
>  
> -	/*
> -	 * Enable reception of data frames now, if not already enabled.
> -	 * We may need to receive EAPOL data frames very soon after the
> -	 * AP sends a response to our assoc request.
> -	 */
> -	sc->ops.irq_enable(sc);
> -
>  	return 0;
>  }
>  
> @@ -27112,8 +27105,6 @@ qwx_run_stop(struct qwx_softc *sc)
>  	struct qwx_node *nq = (void *)ni;
>  	int ret;
>  
> -	sc->ops.irq_disable(sc);
> -
>  	ret = qwx_wmi_set_peer_param(sc, ni->ni_macaddr, arvif->vdev_id,
>  	    pdev_id, WMI_PEER_AUTHORIZE, 0);
>  	if (ret) {
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.