View | Details | Raw Unified | Return to bug 197143 | Differences between
and this patch

Collapse All | Expand All

(-)sys/dev/wpi/if_wpi.c (-6 / +6 lines)
Lines 1957-1963 Link Here
1957
	struct ieee80211vap *vap;
1957
	struct ieee80211vap *vap;
1958
	struct ieee80211com *ic;
1958
	struct ieee80211com *ic;
1959
	uint32_t status = le32toh(stat->status);
1959
	uint32_t status = le32toh(stat->status);
1960
	int ackfailcnt = stat->ackfailcnt / 2;	/* wpi_mrr_setup() */
1960
	int ackfailcnt = stat->ackfailcnt / WPI_NTRIES_DEFAULT;
1961
1961
1962
	KASSERT(data->ni != NULL, ("no node"));
1962
	KASSERT(data->ni != NULL, ("no node"));
1963
	KASSERT(data->m != NULL, ("no mbuf"));
1963
	KASSERT(data->m != NULL, ("no mbuf"));
Lines 1966-1972 Link Here
1966
1966
1967
	DPRINTF(sc, WPI_DEBUG_XMIT, "%s: "
1967
	DPRINTF(sc, WPI_DEBUG_XMIT, "%s: "
1968
	    "qid %d idx %d retries %d btkillcnt %d rate %x duration %d "
1968
	    "qid %d idx %d retries %d btkillcnt %d rate %x duration %d "
1969
	    "status %x\n", __func__, desc->qid, desc->idx, ackfailcnt,
1969
	    "status %x\n", __func__, desc->qid, desc->idx, stat->ackfailcnt,
1970
	    stat->btkillcnt, stat->rate, le32toh(stat->duration), status);
1970
	    stat->btkillcnt, stat->rate, le32toh(stat->duration), status);
1971
1971
1972
	/* Unmap and free mbuf. */
1972
	/* Unmap and free mbuf. */
Lines 3125-3132 Link Here
3125
		/* Fallback to the immediate lower CCK rate (if any.) */
3125
		/* Fallback to the immediate lower CCK rate (if any.) */
3126
		mrr.rates[i].next =
3126
		mrr.rates[i].next =
3127
		    (i == WPI_RIDX_CCK1) ? WPI_RIDX_CCK1 : i - 1;
3127
		    (i == WPI_RIDX_CCK1) ? WPI_RIDX_CCK1 : i - 1;
3128
		/* Try one time at this rate before falling back to "next". */
3128
		/* Try twice at this rate before falling back to "next". */
3129
		mrr.rates[i].ntries = 1;
3129
		mrr.rates[i].ntries = WPI_NTRIES_DEFAULT;
3130
	}
3130
	}
3131
	/* OFDM rates (not used with 802.11b). */
3131
	/* OFDM rates (not used with 802.11b). */
3132
	for (i = WPI_RIDX_OFDM6; i <= WPI_RIDX_OFDM54; i++) {
3132
	for (i = WPI_RIDX_OFDM6; i <= WPI_RIDX_OFDM54; i++) {
Lines 3138-3145 Link Here
3138
		    ((ic->ic_curmode == IEEE80211_MODE_11A) ?
3138
		    ((ic->ic_curmode == IEEE80211_MODE_11A) ?
3139
			WPI_RIDX_OFDM6 : WPI_RIDX_CCK2) :
3139
			WPI_RIDX_OFDM6 : WPI_RIDX_CCK2) :
3140
		    i - 1;
3140
		    i - 1;
3141
		/* Try one time at this rate before falling back to "next". */
3141
		/* Try twice at this rate before falling back to "next". */
3142
		mrr.rates[i].ntries = 1;
3142
		mrr.rates[i].ntries = WPI_NTRIES_DEFAULT;
3143
	}
3143
	}
3144
	/* Setup MRR for control frames. */
3144
	/* Setup MRR for control frames. */
3145
	mrr.which = htole32(WPI_MRR_CTL);
3145
	mrr.which = htole32(WPI_MRR_CTL);
(-)sys/dev/wpi/if_wpireg.h (+2 lines)
Lines 547-552 Link Here
547
		uint8_t	plcp;
547
		uint8_t	plcp;
548
		uint8_t	flags;
548
		uint8_t	flags;
549
		uint8_t	ntries;
549
		uint8_t	ntries;
550
#define		WPI_NTRIES_DEFAULT	2
551
550
		uint8_t	next;
552
		uint8_t	next;
551
	} __packed	rates[WPI_RIDX_MAX + 1];
553
	} __packed	rates[WPI_RIDX_MAX + 1];
552
} __packed;
554
} __packed;

Return to bug 197143