From bc3d7c2f1b77b6e0f23b6ff0546ff6bbf8c3e3a5 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Fri, 18 Oct 2013 13:39:10 +0000
Subject: [PATCH] rt2800usb: merge a fix to slow down tx status polling
 (#13523)

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 38452
---
 .../patches/301-pending_work-rt2x00.patch     | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/package/kernel/mac80211/patches/301-pending_work-rt2x00.patch b/package/kernel/mac80211/patches/301-pending_work-rt2x00.patch
index 353ef74762..947538baf6 100644
--- a/package/kernel/mac80211/patches/301-pending_work-rt2x00.patch
+++ b/package/kernel/mac80211/patches/301-pending_work-rt2x00.patch
@@ -3258,6 +3258,28 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  
 --- a/drivers/net/wireless/rt2x00/rt2800usb.c
 +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -176,8 +176,8 @@ static bool rt2800usb_tx_sta_fifo_read_c
+ 		queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
+ 
+ 	if (rt2800usb_txstatus_pending(rt2x00dev)) {
+-		/* Read register after 250 us */
+-		hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 250000),
++		/* Read register after 1 ms */
++		hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 1000000),
+ 			      HRTIMER_MODE_REL);
+ 		return false;
+ 	}
+@@ -202,8 +202,8 @@ static void rt2800usb_async_read_tx_stat
+ 	if (test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags))
+ 		return;
+ 
+-	/* Read TX_STA_FIFO register after 500 us */
+-	hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 500000),
++	/* Read TX_STA_FIFO register after 2 ms */
++	hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 2000000),
+ 		      HRTIMER_MODE_REL);
+ }
+ 
 @@ -854,13 +854,7 @@ static void rt2800usb_queue_init(struct 
  	struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
  	unsigned short txwi_size, rxwi_size;
-- 
GitLab