Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb47ada8 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by Kalle Valo
Browse files

rt2800: use TXOP_BACKOFF for probe frames



Even if we do not set AMPDU bit in TXWI, device still can aggregate
frame and send it with rate not corresponding to requested. That mean
we can do not sent probe frames with requested rate. To prevent that
use TXOP_BACKOFF for probe frames.

Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 9d7a7a4d
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -372,15 +372,16 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,


	/*
	/*
	 * Determine IFS values
	 * Determine IFS values
	 * - Use TXOP_BACKOFF for management frames except beacons
	 * - Use TXOP_BACKOFF for probe and management frames except beacons
	 * - Use TXOP_SIFS for fragment bursts
	 * - Use TXOP_SIFS for fragment bursts
	 * - Use TXOP_HTTXOP for everything else
	 * - Use TXOP_HTTXOP for everything else
	 *
	 *
	 * Note: rt2800 devices won't use CTS protection (if used)
	 * Note: rt2800 devices won't use CTS protection (if used)
	 * for frames not transmitted with TXOP_HTTXOP
	 * for frames not transmitted with TXOP_HTTXOP
	 */
	 */
	if (ieee80211_is_mgmt(hdr->frame_control) &&
	if ((ieee80211_is_mgmt(hdr->frame_control) &&
	    !ieee80211_is_beacon(hdr->frame_control))
	     !ieee80211_is_beacon(hdr->frame_control)) ||
	    (tx_info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE))
		txdesc->u.ht.txop = TXOP_BACKOFF;
		txdesc->u.ht.txop = TXOP_BACKOFF;
	else if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT))
	else if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT))
		txdesc->u.ht.txop = TXOP_SIFS;
		txdesc->u.ht.txop = TXOP_SIFS;