New diff which applies to -current after IEEE80211_NO_HT removal commit.

Index: if_iwm.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v
retrieving revision 1.72
diff -u -p -r1.72 if_iwm.c
--- if_iwm.c    5 Jan 2016 18:41:15 -0000       1.72
+++ if_iwm.c    5 Jan 2016 19:04:11 -0000
@@ -3853,11 +3853,7 @@ iwm_tx_fill_cmd(struct iwm_softc *sc, st
                ridx = sc->sc_fixed_ridx;
        } else {
                /* for data frames, use RS table */
-               if (ni->ni_flags & IEEE80211_NODE_HT) {
-                       tx->initial_rate_index =
-                           (nitems(iwm_mcs2ridx) - 1) - ni->ni_txmcs;
-               } else
-                       tx->initial_rate_index = (nrates - 1) - ni->ni_txrate;
+               tx->initial_rate_index = 0;
                tx->tx_flags |= htole32(IWM_TX_CMD_FLG_STA_RATE);
                DPRINTFN(12, ("start with txrate %d\n", 
tx->initial_rate_index));
                if (ni->ni_flags & IEEE80211_NODE_HT) {
Index: if_iwn.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_iwn.c,v
retrieving revision 1.150
diff -u -p -r1.150 if_iwn.c
--- if_iwn.c    5 Jan 2016 18:41:15 -0000       1.150
+++ if_iwn.c    5 Jan 2016 19:03:42 -0000
@@ -3399,9 +3399,21 @@ iwn_set_link_quality(struct iwn_softc *s
                }
                /* Fill the rest with MCS 0. */
                rinfo = &iwn_rates[iwn_mcs2ridx[0]];
-               while (i < IWN_MAX_TX_RETRIES) {
+               while (i < IWN_MAX_TX_RETRIES - 1) {
                        linkq.retry[i].plcp = rinfo->ht_plcp;
                        linkq.retry[i].rflags = rinfo->ht_flags;
+                       linkq.retry[i].rflags |= IWN_RFLAG_ANT(txant);
+                       i++;
+               }
+
+               /* Fill the last slot with the lowest legacy rate. */
+               if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan))
+                       rinfo = &iwn_rates[IWN_RIDX_OFDM6];
+               else
+                       rinfo = &iwn_rates[IWN_RIDX_CCK1];
+               while (i < IWN_MAX_TX_RETRIES) {
+                       linkq.retry[i].plcp = rinfo->plcp;
+                       linkq.retry[i].rflags = rinfo->flags;
                        linkq.retry[i].rflags |= IWN_RFLAG_ANT(txant);
                        i++;
                }

Reply via email to