mac80211: rt2x00: no longer use TXOP_BACKOFF for probe frames
Import a revert-commit from Stanislaw Gruszka which significantly
improves WiFi performance on rt2x00 based hardware.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry-picked from commit f4a639a3d7)
			
			
This commit is contained in:
		| @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk | ||||
| PKG_NAME:=mac80211 | ||||
|  | ||||
| PKG_VERSION:=2017-11-01 | ||||
| PKG_RELEASE:=8 | ||||
| PKG_RELEASE:=9 | ||||
| PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources | ||||
| PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,45 @@ | ||||
| From 52a192362932f333a7ebafd581c4d9b81da2fec8 Mon Sep 17 00:00:00 2001 | ||||
| From: Stanislaw Gruszka <sgruszka@redhat.com> | ||||
| Date: Mon, 28 May 2018 13:25:06 +0200 | ||||
| Subject: [PATCH] Revert "rt2800: use TXOP_BACKOFF for probe frames" | ||||
|  | ||||
| This reverts commit fb47ada8dc3c30c8e7b415da155742b49536c61e. | ||||
|  | ||||
| In some situations when we set TXOP_BACKOFF, the probe frame is | ||||
| not sent at all. What it worse then sending probe frame as part | ||||
| of AMPDU and can degrade 11n performance to 11g rates. | ||||
|  | ||||
| Cc: stable@vger.kernel.org | ||||
| Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> | ||||
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> | ||||
| --- | ||||
|  drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 7 +++---- | ||||
|  1 file changed, 3 insertions(+), 4 deletions(-) | ||||
|  | ||||
| diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | ||||
| index a6884e73d2ab..7ddee980048b 100644 | ||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | ||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | ||||
| @@ -372,16 +372,15 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev, | ||||
|   | ||||
|  	/* | ||||
|  	 * Determine IFS values | ||||
| -	 * - Use TXOP_BACKOFF for probe and management frames except beacons | ||||
| +	 * - Use TXOP_BACKOFF for management frames except beacons | ||||
|  	 * - Use TXOP_SIFS for fragment bursts | ||||
|  	 * - Use TXOP_HTTXOP for everything else | ||||
|  	 * | ||||
|  	 * Note: rt2800 devices won't use CTS protection (if used) | ||||
|  	 * for frames not transmitted with TXOP_HTTXOP | ||||
|  	 */ | ||||
| -	if ((ieee80211_is_mgmt(hdr->frame_control) && | ||||
| -	     !ieee80211_is_beacon(hdr->frame_control)) || | ||||
| -	    (tx_info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE)) | ||||
| +	if (ieee80211_is_mgmt(hdr->frame_control) && | ||||
| +	    !ieee80211_is_beacon(hdr->frame_control)) | ||||
|  		txdesc->u.ht.txop = TXOP_BACKOFF; | ||||
|  	else if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)) | ||||
|  		txdesc->u.ht.txop = TXOP_SIFS; | ||||
| --  | ||||
| 2.17.1 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Golle
					Daniel Golle