mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-24 22:35:11 +02:00
madwifi: treat rxorn like rx, reset after rxorn seems to do more harm than good
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15030 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
041ed57ae2
commit
09b5c94c9e
31
package/madwifi/patches/413-rxorn.patch
Normal file
31
package/madwifi/patches/413-rxorn.patch
Normal file
@ -0,0 +1,31 @@
|
||||
--- a/ath/if_ath.c
|
||||
+++ b/ath/if_ath.c
|
||||
@@ -2307,6 +2307,17 @@ ath_intr(int irq, void *dev_id, struct p
|
||||
|
||||
sc->sc_isr = status;
|
||||
status &= sc->sc_imask; /* discard unasked for bits */
|
||||
+
|
||||
+ /* Treat RXORN as non-fatal. Either the bus is busy or the CPU
|
||||
+ * is not fast enough to process all frames. Treat it like
|
||||
+ * an Rx interrupt
|
||||
+ */
|
||||
+ if (status & HAL_INT_RXORN) {
|
||||
+ sc->sc_stats.ast_rxorn++;
|
||||
+ status &= ~HAL_INT_RXORN;
|
||||
+ status |= HAL_INT_RX;
|
||||
+ }
|
||||
+
|
||||
/* As soon as we know we have a real interrupt we intend to service,
|
||||
* we will check to see if we need an initial hardware TSF reading.
|
||||
* Normally we would just populate this all the time to keep things
|
||||
@@ -2319,10 +2330,6 @@ ath_intr(int irq, void *dev_id, struct p
|
||||
sc->sc_stats.ast_hardware++;
|
||||
ath_hal_intrset(ah, 0); /* disable intr's until reset */
|
||||
ATH_SCHEDULE_TQUEUE(&sc->sc_fataltq, &needmark);
|
||||
- } else if (status & HAL_INT_RXORN) {
|
||||
- sc->sc_stats.ast_rxorn++;
|
||||
- ath_hal_intrset(ah, 0); /* disable intr's until reset */
|
||||
- ATH_SCHEDULE_TQUEUE(&sc->sc_rxorntq, &needmark);
|
||||
} else {
|
||||
if (status & HAL_INT_SWBA) {
|
||||
struct ieee80211vap * vap;
|
Loading…
Reference in New Issue
Block a user