summaryrefslogtreecommitdiff
path: root/package/ath9k/patches/100-bad_udelay.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/ath9k/patches/100-bad_udelay.patch')
-rw-r--r--package/ath9k/patches/100-bad_udelay.patch15
1 files changed, 15 insertions, 0 deletions
diff --git a/package/ath9k/patches/100-bad_udelay.patch b/package/ath9k/patches/100-bad_udelay.patch
new file mode 100644
index 0000000000..98f33d7176
--- /dev/null
+++ b/package/ath9k/patches/100-bad_udelay.patch
@@ -0,0 +1,15 @@
+Replace udelay(3000) with mdelay(3), because udelay(3000) fails on ARM
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+
+--- a/drivers/net/wireless/ath9k/recv.c
++++ b/drivers/net/wireless/ath9k/recv.c
+@@ -737,7 +737,7 @@
+ ath9k_hw_stoppcurecv(ah); /* disable PCU */
+ ath9k_hw_setrxfilter(ah, 0); /* clear recv filter */
+ stopped = ath9k_hw_stopdmarecv(ah); /* disable DMA engine */
+- udelay(3000); /* 3ms is long enough for 1 frame */
++ mdelay(3); /* 3ms is long enough for 1 frame */
+ tsf = ath9k_hw_gettsf64(ah);
+ sc->sc_rxlink = NULL; /* just in case */
+ return stopped;