Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Nov 2015 15:14:58 +0200
From:      "Andriy Voskoboinyk" <avos@freebsd.org>
To:        "Steve Wills" <swills@freebsd.org>
Cc:        "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>
Subject:   Re: urtwn broken at r291262
Message-ID:  <op.x8u5q8yo4dikkl@localhost>
In-Reply-To: <565A8883.7040100@FreeBSD.org>
References:  <5659ED1D.70003@FreeBSD.org> <op.x8tqbkpw4dikkl@localhost> <565A271C.6070107@FreeBSD.org> <565A5BB2.3020908@FreeBSD.org> <565A8883.7040100@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Sun, 29 Nov 2015 07:09:23 +0200 було написано Steve Wills  
<swills@freebsd.org>:

> On 11/28/2015 20:58, Steve Wills wrote:
>
> No luck with the suggested change, but perhaps I misunderstood. Here's
> the diff I have:
>
> Index: if_urtwn.c
> ===================================================================
> --- if_urtwn.c  (revision 290630)
> +++ if_urtwn.c  (working copy)
> @@ -1860,7 +1860,7 @@
>                 } else  /* IEEE80211_FC0_TYPE_MGT */
>                         qsel = R92C_TXDW1_QSEL_MGNT;
>         } else {
> -               macid = URTWN_MACID_BC;
> +               macid = URTWN_MACID_BSS;
>                 qsel = R92C_TXDW1_QSEL_MGNT;
>         }
>

Yes, that was I meant.

>
> Is there something else I can change or debugging info I can provide?
>

Yes, newer patch reverts more changes from this commit.
Please, apply and test with it.

> Thanks,
> Steve
[-- Attachment #2 --]
--- sys/dev/usb/wlan/if_urtwn.c	2015-11-29 13:40:53.947793000 +0200
+++ sys/dev/usb/wlan/if_urtwn.c	2015-11-29 15:08:57.515218000 +0200
@@ -1825,13 +1825,9 @@
 		if (type == IEEE80211_FC0_TYPE_DATA) {
 			qsel = R92C_TXDW1_QSEL_BE;
 
-			if (!(m->m_flags & M_EAPOL)) {
-				if (ic->ic_curmode != IEEE80211_MODE_11B) {
-					raid = R92C_RAID_11BG;
-					ridx = URTWN_RIDX_OFDM54;
-				} else
-					ridx = URTWN_RIDX_CCK11;
-			}
+			ridx = URTWN_RIDX_OFDM54;
+			if (ic->ic_curmode != IEEE80211_MODE_11B)
+				raid = R92C_RAID_11BG;
 
 			if (sc->chip & URTWN_CHIP_88E)
 				txd->txdw2 |= htole32(R88E_TXDW2_AGGBK);
@@ -1860,7 +1856,7 @@
 		} else	/* IEEE80211_FC0_TYPE_MGT */
 			qsel = R92C_TXDW1_QSEL_MGNT;
 	} else {
-		macid = URTWN_MACID_BC;
+		macid = 0;
 		qsel = R92C_TXDW1_QSEL_MGNT;
 	}
 
@@ -1878,12 +1874,11 @@
 	if (ridx <= URTWN_RIDX_CCK11)
 		txd->txdw4 |= htole32(R92C_TXDW4_DRVRATE);
 
+	txd->txdseq = htole16(M_SEQNO_GET(m) % IEEE80211_SEQ_RANGE);
 	if (!IEEE80211_QOS_HAS_SEQ(wh)) {
 		/* Use HW sequence numbering for non-QoS frames. */
 		txd->txdseq = htole16(R92C_TXDSEQ_HWSEQ_EN);
-	} else {
-		/* Set sequence number. */
-		txd->txdseq = htole16(M_SEQNO_GET(m) % IEEE80211_SEQ_RANGE);
+		txd->txdw4 |= htole32(0x80);
 	}
 
 	if (ieee80211_radiotap_active_vap(vap)) {

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.x8u5q8yo4dikkl>