diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/debug.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/debug.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 10 |
3 files changed, 16 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c index 29898f8d1893..ee8387740ebe 100644 --- a/drivers/net/wireless/ath/ath9k/debug.c +++ b/drivers/net/wireless/ath/ath9k/debug.c | |||
@@ -269,6 +269,8 @@ void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status) | |||
269 | sc->debug.stats.istats.rxlp++; | 269 | sc->debug.stats.istats.rxlp++; |
270 | if (status & ATH9K_INT_RXHP) | 270 | if (status & ATH9K_INT_RXHP) |
271 | sc->debug.stats.istats.rxhp++; | 271 | sc->debug.stats.istats.rxhp++; |
272 | if (status & ATH9K_INT_BB_WATCHDOG) | ||
273 | sc->debug.stats.istats.bb_watchdog++; | ||
272 | } else { | 274 | } else { |
273 | if (status & ATH9K_INT_RX) | 275 | if (status & ATH9K_INT_RX) |
274 | sc->debug.stats.istats.rxok++; | 276 | sc->debug.stats.istats.rxok++; |
@@ -319,6 +321,9 @@ static ssize_t read_file_interrupt(struct file *file, char __user *user_buf, | |||
319 | "%8s: %10u\n", "RXLP", sc->debug.stats.istats.rxlp); | 321 | "%8s: %10u\n", "RXLP", sc->debug.stats.istats.rxlp); |
320 | len += snprintf(buf + len, sizeof(buf) - len, | 322 | len += snprintf(buf + len, sizeof(buf) - len, |
321 | "%8s: %10u\n", "RXHP", sc->debug.stats.istats.rxhp); | 323 | "%8s: %10u\n", "RXHP", sc->debug.stats.istats.rxhp); |
324 | len += snprintf(buf + len, sizeof(buf) - len, | ||
325 | "%8s: %10u\n", "WATCHDOG", | ||
326 | sc->debug.stats.istats.bb_watchdog); | ||
322 | } else { | 327 | } else { |
323 | len += snprintf(buf + len, sizeof(buf) - len, | 328 | len += snprintf(buf + len, sizeof(buf) - len, |
324 | "%8s: %10u\n", "RX", sc->debug.stats.istats.rxok); | 329 | "%8s: %10u\n", "RX", sc->debug.stats.istats.rxok); |
diff --git a/drivers/net/wireless/ath/ath9k/debug.h b/drivers/net/wireless/ath/ath9k/debug.h index 5147b8709e10..5d21704e87ff 100644 --- a/drivers/net/wireless/ath/ath9k/debug.h +++ b/drivers/net/wireless/ath/ath9k/debug.h | |||
@@ -53,6 +53,7 @@ struct ath_buf; | |||
53 | * @cabend: RX End of CAB traffic | 53 | * @cabend: RX End of CAB traffic |
54 | * @dtimsync: DTIM sync lossage | 54 | * @dtimsync: DTIM sync lossage |
55 | * @dtim: RX Beacon with DTIM | 55 | * @dtim: RX Beacon with DTIM |
56 | * @bb_watchdog: Baseband watchdog | ||
56 | */ | 57 | */ |
57 | struct ath_interrupt_stats { | 58 | struct ath_interrupt_stats { |
58 | u32 total; | 59 | u32 total; |
@@ -76,6 +77,7 @@ struct ath_interrupt_stats { | |||
76 | u32 cabend; | 77 | u32 cabend; |
77 | u32 dtimsync; | 78 | u32 dtimsync; |
78 | u32 dtim; | 79 | u32 dtim; |
80 | u32 bb_watchdog; | ||
79 | }; | 81 | }; |
80 | 82 | ||
81 | struct ath_rc_stats { | 83 | struct ath_rc_stats { |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index abfa0493236f..b98b2f2ed07d 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -520,6 +520,12 @@ irqreturn_t ath_isr(int irq, void *dev) | |||
520 | !(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA))) | 520 | !(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA))) |
521 | goto chip_reset; | 521 | goto chip_reset; |
522 | 522 | ||
523 | if ((ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) && | ||
524 | (status & ATH9K_INT_BB_WATCHDOG)) { | ||
525 | ar9003_hw_bb_watchdog_dbg_info(ah); | ||
526 | goto chip_reset; | ||
527 | } | ||
528 | |||
523 | if (status & ATH9K_INT_SWBA) | 529 | if (status & ATH9K_INT_SWBA) |
524 | tasklet_schedule(&sc->bcon_tasklet); | 530 | tasklet_schedule(&sc->bcon_tasklet); |
525 | 531 | ||
@@ -1195,7 +1201,9 @@ static int ath9k_start(struct ieee80211_hw *hw) | |||
1195 | ATH9K_INT_GLOBAL; | 1201 | ATH9K_INT_GLOBAL; |
1196 | 1202 | ||
1197 | if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) | 1203 | if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) |
1198 | ah->imask |= ATH9K_INT_RXHP | ATH9K_INT_RXLP; | 1204 | ah->imask |= ATH9K_INT_RXHP | |
1205 | ATH9K_INT_RXLP | | ||
1206 | ATH9K_INT_BB_WATCHDOG; | ||
1199 | else | 1207 | else |
1200 | ah->imask |= ATH9K_INT_RX; | 1208 | ah->imask |= ATH9K_INT_RX; |
1201 | 1209 | ||