linux/drivers/net/wireless/b43
Michael Buesch 3e3ccb3d9b b43: Mask PHY TX error interrupt, if not debugging
This masks the PHY TX error interrupt, if debugging is disabled.

Currently we have a bug somewhere which triggers this interrupt once
in a while. (Depends on the network noise/quality). While this is nonfatal,
it scares the hell out of users and we frequently receive bugreports
that incorrectly identify this error message as the reason.

There's another problem with this. The PHY TX error interrupt is protected
with a watchdog that will restart the device if it keeps triggering very often.
This is used to fix interrupt storms from completely broken devices.

However, this watchdog might trigger in completely normal operation.
If the TX capacity of the card is saturated, the likeliness of the watchdog
triggering increases, as more TX errors occur. The current threshold
for the watchdog is 1000 errors in 15 seconds.

This patch adds a workaround for the issue by just enabling the interrupt
if debugging is disabled (by Kconfig or by modparam).

This has the downside that real fatal PHY TX errors are not caught anymore.
But this is nonfatal due to the following reasons:
* If the card is not able to transmit anymore, MLME will notice anyway.
* I did _never_ see a real fatal PHY TX error in a mainline b43 driver.
* It does _not_ result in interrupt storms or something like that.
  It will simply result in a stalled card. It can be debugged by enabling
  the debugging module parameter.

Signed-off-by: Michael Buesch <mb@bu3sch>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-27 20:13:03 -04:00
..
b43.h b43: Pass more RX flags to mac80211 2009-03-05 14:39:40 -05:00
debugfs.c b43: checkpatch.pl cleanups 2009-02-27 14:53:04 -05:00
debugfs.h b43: Dynamically control log verbosity 2009-01-29 16:01:47 -05:00
dma.c b43: Pass more RX flags to mac80211 2009-03-05 14:39:40 -05:00
dma.h b43: Optimize DMA buffers 2009-02-27 14:52:48 -05:00
Kconfig b43: Dynamically control log verbosity 2009-01-29 16:01:47 -05:00
leds.c
leds.h
lo.c b43: checkpatch.pl cleanups 2009-02-27 14:53:04 -05:00
lo.h b43: Implement dynamic PHY API 2008-08-29 16:24:12 -04:00
main.c b43: Mask PHY TX error interrupt, if not debugging 2009-03-27 20:13:03 -04:00
main.h b43: Dynamically control log verbosity 2009-01-29 16:01:47 -05:00
Makefile b43: Add LP-PHY baseband init for >=rev2 2009-02-09 15:03:48 -05:00
pcmcia.c pcmcia: remove unused argument to pcmcia_parse_tuple() 2008-08-31 15:50:33 +02:00
pcmcia.h
phy_a.c b43: Convert usage of b43_radio_maskset() 2009-02-27 14:52:53 -05:00
phy_a.h b43: Split PHY alloc and init 2008-09-05 16:17:49 -04:00
phy_common.c b43: Suspend MAC while killing the radio 2008-12-19 15:24:04 -05:00
phy_common.h b43: Move Analog switching into phy code 2008-09-08 14:00:16 -04:00
phy_g.c b43: checkpatch.pl cleanups 2009-02-27 14:53:04 -05:00
phy_g.h b43: Split PHY alloc and init 2008-09-05 16:17:49 -04:00
phy_lp.c b43: Add parts of LP-PHY TX power control 2009-02-11 11:44:23 -05:00
phy_lp.h b43: Add parts of LP-PHY TX power control 2009-02-11 11:44:23 -05:00
phy_n.c b43: Move Analog switching into phy code 2008-09-08 14:00:16 -04:00
phy_n.h b43: Split PHY alloc and init 2008-09-05 16:17:49 -04:00
pio.c b43: checkpatch.pl cleanups 2009-02-27 14:53:04 -05:00
pio.h
rfkill.c b43: checkpatch.pl cleanups 2009-02-27 14:53:04 -05:00
rfkill.h
sysfs.c b43: Implement dynamic PHY API 2008-08-29 16:24:12 -04:00
sysfs.h
tables_lpphy.c b43: Add parts of LP-PHY TX power control 2009-02-11 11:44:23 -05:00
tables_lpphy.h b43: Add parts of LP-PHY TX power control 2009-02-11 11:44:23 -05:00
tables_nphy.c b43: Move code from nphy.* to phy_n.* 2008-09-05 16:17:43 -04:00
tables_nphy.h
tables.c b43: Implement dynamic PHY API 2008-08-29 16:24:12 -04:00
tables.h
wa.c b43: Remove bogus integer truncation warnings 2009-02-27 14:53:03 -05:00
wa.h
xmit.c b43: Pass more RX flags to mac80211 2009-03-05 14:39:40 -05:00
xmit.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00