aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2017-08-22 23:59:48 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2017-10-01 12:49:11 +0200
commita8f63a0717f553e0a1b37ee9212fc4cb2a801426 (patch)
tree9016b975706f35b98075167f2cf6b15add308c9b /package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch
parent1114f5dc10755e3c92b5711b420818cf9e366874 (diff)
downloadupstream-a8f63a0717f553e0a1b37ee9212fc4cb2a801426.tar.gz
upstream-a8f63a0717f553e0a1b37ee9212fc4cb2a801426.tar.bz2
upstream-a8f63a0717f553e0a1b37ee9212fc4cb2a801426.zip
mac80211: update to backports-4.14-rc2
This updates mac80211 to backprots-4.14-rc2. This was compile and runtime tested with ath9k, ath10k and b43 with multiple stations and ieee80211w and in different scenarios by many other people. To create the backports-4.14-rc2-1.tar.xz use this repository: https://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git from tag v4.14-rc2-1 Then run this: ./gentree.py --git-revision v4.14-rc2 --clean <path to linux repo> ../backports-4.14-rc2-1 This also adapts the ath10k-ct and mt76 driver to the changed cfg80211 APIs and syncs the nl80211.h file in iw with the new version from backports-4.14-rc2. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch')
-rw-r--r--package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch14
1 files changed, 7 insertions, 7 deletions
diff --git a/package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch b/package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch
index 7d8d2f5e13..342174f8d5 100644
--- a/package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch
+++ b/package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch
@@ -12,7 +12,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c
-@@ -415,9 +415,9 @@ void rt2800mmio_autowake_tasklet(unsigne
+@@ -424,9 +424,9 @@ void rt2800mmio_autowake_tasklet(unsigne
}
EXPORT_SYMBOL_GPL(rt2800mmio_autowake_tasklet);
@@ -24,12 +24,12 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
int i;
/*
-@@ -438,29 +438,77 @@ static void rt2800mmio_txstatus_interrup
+@@ -447,29 +447,77 @@ static void rt2800mmio_txstatus_interrup
* Since we have only one producer and one consumer we don't
* need to lock the kfifo.
*/
- for (i = 0; i < rt2x00dev->tx->limit; i++) {
-- rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO, &status);
+- status = rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO);
-
- if (!rt2x00_get_field32(status, TX_STA_FIFO_VALID))
- break;
@@ -47,7 +47,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+ if (++i >= rt2x00dev->tx->limit)
+ break;
+
-+ rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO, &status);
++ status = rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO);
+ } while (rt2x00_get_field32(status, TX_STA_FIFO_VALID));
/* Schedule the tasklet for processing the tx status. */
@@ -87,7 +87,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
- /* Read status and ACK all interrupts */
+ /* Read status */
- rt2x00mmio_register_read(rt2x00dev, INT_SOURCE_CSR, &reg);
+ reg = rt2x00mmio_register_read(rt2x00dev, INT_SOURCE_CSR);
+
+ if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {
+ /* Due to unknown reason the hardware generates a
@@ -96,7 +96,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+ * here to see if we have to process the actual
+ * request.
+ */
-+ rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO, &txstatus);
++ txstatus = rt2x00mmio_register_read(rt2x00dev, TX_STA_FIFO);
+ if (rt2800mmio_txstatus_is_spurious(rt2x00dev, txstatus)) {
+ /* Remove the TX_FIFO_STATUS bit so it won't be
+ * processed in this turn. The hardware will
@@ -111,7 +111,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
rt2x00mmio_register_write(rt2x00dev, INT_SOURCE_CSR, reg);
if (!reg)
-@@ -477,7 +525,7 @@ irqreturn_t rt2800mmio_interrupt(int irq
+@@ -486,7 +534,7 @@ irqreturn_t rt2800mmio_interrupt(int irq
mask = ~reg;
if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) {