diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/debug.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/debug.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c index 081e0085ed4c..9a8e419398f9 100644 --- a/drivers/net/wireless/ath/ath9k/debug.c +++ b/drivers/net/wireless/ath/ath9k/debug.c | |||
@@ -157,10 +157,10 @@ static ssize_t read_file_dma(struct file *file, char __user *user_buf, | |||
157 | "txfifo_dcu_num_0: %2d txfifo_dcu_num_1: %2d\n", | 157 | "txfifo_dcu_num_0: %2d txfifo_dcu_num_1: %2d\n", |
158 | (val[6] & 0x0001e000) >> 13, (val[6] & 0x001e0000) >> 17); | 158 | (val[6] & 0x0001e000) >> 13, (val[6] & 0x001e0000) >> 17); |
159 | 159 | ||
160 | len += snprintf(buf + len, DMA_BUF_LEN - len, "pcu observe: 0x%x \n", | 160 | len += snprintf(buf + len, DMA_BUF_LEN - len, "pcu observe: 0x%x\n", |
161 | REG_READ_D(ah, AR_OBS_BUS_1)); | 161 | REG_READ_D(ah, AR_OBS_BUS_1)); |
162 | len += snprintf(buf + len, DMA_BUF_LEN - len, | 162 | len += snprintf(buf + len, DMA_BUF_LEN - len, |
163 | "AR_CR: 0x%x \n", REG_READ_D(ah, AR_CR)); | 163 | "AR_CR: 0x%x\n", REG_READ_D(ah, AR_CR)); |
164 | 164 | ||
165 | ath9k_ps_restore(sc); | 165 | ath9k_ps_restore(sc); |
166 | 166 | ||
@@ -557,10 +557,8 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf, | |||
557 | } | 557 | } |
558 | 558 | ||
559 | void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, | 559 | void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, |
560 | struct ath_buf *bf) | 560 | struct ath_buf *bf, struct ath_tx_status *ts) |
561 | { | 561 | { |
562 | struct ath_desc *ds = bf->bf_desc; | ||
563 | |||
564 | if (bf_isampdu(bf)) { | 562 | if (bf_isampdu(bf)) { |
565 | if (bf_isxretried(bf)) | 563 | if (bf_isxretried(bf)) |
566 | TX_STAT_INC(txq->axq_qnum, a_xretries); | 564 | TX_STAT_INC(txq->axq_qnum, a_xretries); |
@@ -570,17 +568,17 @@ void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, | |||
570 | TX_STAT_INC(txq->axq_qnum, completed); | 568 | TX_STAT_INC(txq->axq_qnum, completed); |
571 | } | 569 | } |
572 | 570 | ||
573 | if (ds->ds_txstat.ts_status & ATH9K_TXERR_FIFO) | 571 | if (ts->ts_status & ATH9K_TXERR_FIFO) |
574 | TX_STAT_INC(txq->axq_qnum, fifo_underrun); | 572 | TX_STAT_INC(txq->axq_qnum, fifo_underrun); |
575 | if (ds->ds_txstat.ts_status & ATH9K_TXERR_XTXOP) | 573 | if (ts->ts_status & ATH9K_TXERR_XTXOP) |
576 | TX_STAT_INC(txq->axq_qnum, xtxop); | 574 | TX_STAT_INC(txq->axq_qnum, xtxop); |
577 | if (ds->ds_txstat.ts_status & ATH9K_TXERR_TIMER_EXPIRED) | 575 | if (ts->ts_status & ATH9K_TXERR_TIMER_EXPIRED) |
578 | TX_STAT_INC(txq->axq_qnum, timer_exp); | 576 | TX_STAT_INC(txq->axq_qnum, timer_exp); |
579 | if (ds->ds_txstat.ts_flags & ATH9K_TX_DESC_CFG_ERR) | 577 | if (ts->ts_flags & ATH9K_TX_DESC_CFG_ERR) |
580 | TX_STAT_INC(txq->axq_qnum, desc_cfg_err); | 578 | TX_STAT_INC(txq->axq_qnum, desc_cfg_err); |
581 | if (ds->ds_txstat.ts_flags & ATH9K_TX_DATA_UNDERRUN) | 579 | if (ts->ts_flags & ATH9K_TX_DATA_UNDERRUN) |
582 | TX_STAT_INC(txq->axq_qnum, data_underrun); | 580 | TX_STAT_INC(txq->axq_qnum, data_underrun); |
583 | if (ds->ds_txstat.ts_flags & ATH9K_TX_DELIM_UNDERRUN) | 581 | if (ts->ts_flags & ATH9K_TX_DELIM_UNDERRUN) |
584 | TX_STAT_INC(txq->axq_qnum, delim_underrun); | 582 | TX_STAT_INC(txq->axq_qnum, delim_underrun); |
585 | } | 583 | } |
586 | 584 | ||
@@ -663,30 +661,29 @@ static ssize_t read_file_recv(struct file *file, char __user *user_buf, | |||
663 | #undef PHY_ERR | 661 | #undef PHY_ERR |
664 | } | 662 | } |
665 | 663 | ||
666 | void ath_debug_stat_rx(struct ath_softc *sc, struct ath_buf *bf) | 664 | void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs) |
667 | { | 665 | { |
668 | #define RX_STAT_INC(c) sc->debug.stats.rxstats.c++ | 666 | #define RX_STAT_INC(c) sc->debug.stats.rxstats.c++ |
669 | #define RX_PHY_ERR_INC(c) sc->debug.stats.rxstats.phy_err_stats[c]++ | 667 | #define RX_PHY_ERR_INC(c) sc->debug.stats.rxstats.phy_err_stats[c]++ |
670 | 668 | ||
671 | struct ath_desc *ds = bf->bf_desc; | ||
672 | u32 phyerr; | 669 | u32 phyerr; |
673 | 670 | ||
674 | if (ds->ds_rxstat.rs_status & ATH9K_RXERR_CRC) | 671 | if (rs->rs_status & ATH9K_RXERR_CRC) |
675 | RX_STAT_INC(crc_err); | 672 | RX_STAT_INC(crc_err); |
676 | if (ds->ds_rxstat.rs_status & ATH9K_RXERR_DECRYPT) | 673 | if (rs->rs_status & ATH9K_RXERR_DECRYPT) |
677 | RX_STAT_INC(decrypt_crc_err); | 674 | RX_STAT_INC(decrypt_crc_err); |
678 | if (ds->ds_rxstat.rs_status & ATH9K_RXERR_MIC) | 675 | if (rs->rs_status & ATH9K_RXERR_MIC) |
679 | RX_STAT_INC(mic_err); | 676 | RX_STAT_INC(mic_err); |
680 | if (ds->ds_rxstat.rs_status & ATH9K_RX_DELIM_CRC_PRE) | 677 | if (rs->rs_status & ATH9K_RX_DELIM_CRC_PRE) |
681 | RX_STAT_INC(pre_delim_crc_err); | 678 | RX_STAT_INC(pre_delim_crc_err); |
682 | if (ds->ds_rxstat.rs_status & ATH9K_RX_DELIM_CRC_POST) | 679 | if (rs->rs_status & ATH9K_RX_DELIM_CRC_POST) |
683 | RX_STAT_INC(post_delim_crc_err); | 680 | RX_STAT_INC(post_delim_crc_err); |
684 | if (ds->ds_rxstat.rs_status & ATH9K_RX_DECRYPT_BUSY) | 681 | if (rs->rs_status & ATH9K_RX_DECRYPT_BUSY) |
685 | RX_STAT_INC(decrypt_busy_err); | 682 | RX_STAT_INC(decrypt_busy_err); |
686 | 683 | ||
687 | if (ds->ds_rxstat.rs_status & ATH9K_RXERR_PHY) { | 684 | if (rs->rs_status & ATH9K_RXERR_PHY) { |
688 | RX_STAT_INC(phy_err); | 685 | RX_STAT_INC(phy_err); |
689 | phyerr = ds->ds_rxstat.rs_phyerr & 0x24; | 686 | phyerr = rs->rs_phyerr & 0x24; |
690 | RX_PHY_ERR_INC(phyerr); | 687 | RX_PHY_ERR_INC(phyerr); |
691 | } | 688 | } |
692 | 689 | ||