Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/debug.c

Issue 5326002: Update compat-wireless to 2.6.36-5-spn (Closed) Base URL: http://git.chromium.org/git/kernel.git@master
Patch Set: Fixes for !ACK handling, missing local changes, log message fixes Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008-2009 Atheros Communications Inc. 2 * Copyright (c) 2008-2009 Atheros Communications Inc.
3 * 3 *
4 * Permission to use, copy, modify, and/or distribute this software for any 4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above 5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies. 6 * copyright notice and this permission notice appear in all copies.
7 * 7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 .read = read_file_wiphy, 623 .read = read_file_wiphy,
624 .write = write_file_wiphy, 624 .write = write_file_wiphy,
625 .open = ath9k_debugfs_open, 625 .open = ath9k_debugfs_open,
626 .owner = THIS_MODULE 626 .owner = THIS_MODULE
627 }; 627 };
628 628
629 #define PR(str, elem) \ 629 #define PR(str, elem) \
630 do { \ 630 do { \
631 len += snprintf(buf + len, size - len, \ 631 len += snprintf(buf + len, size - len, \
632 "%s%13u%11u%10u%10u\n", str, \ 632 "%s%13u%11u%10u%10u\n", str, \
633 » » sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_BE]].elem, \ 633 » » sc->debug.stats.txstats[WME_AC_BE].elem, \
634 » » sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_BK]].elem, \ 634 » » sc->debug.stats.txstats[WME_AC_BK].elem, \
635 » » sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_VI]].elem, \ 635 » » sc->debug.stats.txstats[WME_AC_VI].elem, \
636 » » sc->debug.stats.txstats[sc->tx.hwq_map[WME_AC_VO]].elem); \ 636 » » sc->debug.stats.txstats[WME_AC_VO].elem); \
637 } while(0) 637 } while(0)
638 638
639 static ssize_t read_file_xmit(struct file *file, char __user *user_buf, 639 static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
640 size_t count, loff_t *ppos) 640 size_t count, loff_t *ppos)
641 { 641 {
642 struct ath_softc *sc = file->private_data; 642 struct ath_softc *sc = file->private_data;
643 char *buf; 643 char *buf;
644 unsigned int len = 0, size = 2048; 644 unsigned int len = 0, size = 2048;
645 ssize_t retval = 0; 645 ssize_t retval = 0;
646 646
(...skipping 19 matching lines...) Expand all
666 666
667 if (len > size) 667 if (len > size)
668 len = size; 668 len = size;
669 669
670 retval = simple_read_from_buffer(user_buf, count, ppos, buf, len); 670 retval = simple_read_from_buffer(user_buf, count, ppos, buf, len);
671 kfree(buf); 671 kfree(buf);
672 672
673 return retval; 673 return retval;
674 } 674 }
675 675
676 void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, 676 void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
677 » » struct ath_buf *bf, struct ath_tx_status *ts) 677 » » struct ath_tx_status *ts)
678 { 678 {
679 int qnum = skb_get_queue_mapping(bf->bf_mpdu);
680
679 if (bf_isampdu(bf)) { 681 if (bf_isampdu(bf)) {
680 if (bf_isxretried(bf)) 682 if (bf_isxretried(bf))
681 » » » TX_STAT_INC(txq->axq_qnum, a_xretries); 683 » » » TX_STAT_INC(qnum, a_xretries);
682 else 684 else
683 » » » TX_STAT_INC(txq->axq_qnum, a_completed); 685 » » » TX_STAT_INC(qnum, a_completed);
684 } else { 686 } else {
685 » » TX_STAT_INC(txq->axq_qnum, completed); 687 » » TX_STAT_INC(qnum, completed);
686 } 688 }
687 689
688 if (ts->ts_status & ATH9K_TXERR_FIFO) 690 if (ts->ts_status & ATH9K_TXERR_FIFO)
689 » » TX_STAT_INC(txq->axq_qnum, fifo_underrun); 691 » » TX_STAT_INC(qnum, fifo_underrun);
690 if (ts->ts_status & ATH9K_TXERR_XTXOP) 692 if (ts->ts_status & ATH9K_TXERR_XTXOP)
691 » » TX_STAT_INC(txq->axq_qnum, xtxop); 693 » » TX_STAT_INC(qnum, xtxop);
692 if (ts->ts_status & ATH9K_TXERR_TIMER_EXPIRED) 694 if (ts->ts_status & ATH9K_TXERR_TIMER_EXPIRED)
693 » » TX_STAT_INC(txq->axq_qnum, timer_exp); 695 » » TX_STAT_INC(qnum, timer_exp);
694 if (ts->ts_flags & ATH9K_TX_DESC_CFG_ERR) 696 if (ts->ts_flags & ATH9K_TX_DESC_CFG_ERR)
695 » » TX_STAT_INC(txq->axq_qnum, desc_cfg_err); 697 » » TX_STAT_INC(qnum, desc_cfg_err);
696 if (ts->ts_flags & ATH9K_TX_DATA_UNDERRUN) 698 if (ts->ts_flags & ATH9K_TX_DATA_UNDERRUN)
697 » » TX_STAT_INC(txq->axq_qnum, data_underrun); 699 » » TX_STAT_INC(qnum, data_underrun);
698 if (ts->ts_flags & ATH9K_TX_DELIM_UNDERRUN) 700 if (ts->ts_flags & ATH9K_TX_DELIM_UNDERRUN)
699 » » TX_STAT_INC(txq->axq_qnum, delim_underrun); 701 » » TX_STAT_INC(qnum, delim_underrun);
700 } 702 }
701 703
702 static const struct file_operations fops_xmit = { 704 static const struct file_operations fops_xmit = {
703 .read = read_file_xmit, 705 .read = read_file_xmit,
704 .open = ath9k_debugfs_open, 706 .open = ath9k_debugfs_open,
705 .owner = THIS_MODULE 707 .owner = THIS_MODULE
706 }; 708 };
707 709
708 static ssize_t read_file_recv(struct file *file, char __user *user_buf, 710 static ssize_t read_file_recv(struct file *file, char __user *user_buf,
709 size_t count, loff_t *ppos) 711 size_t count, loff_t *ppos)
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 return -ENOENT; 984 return -ENOENT;
983 985
984 return 0; 986 return 0;
985 } 987 }
986 988
987 void ath9k_debug_remove_root(void) 989 void ath9k_debug_remove_root(void)
988 { 990 {
989 debugfs_remove(ath9k_debugfs_root); 991 debugfs_remove(ath9k_debugfs_root);
990 ath9k_debugfs_root = NULL; 992 ath9k_debugfs_root = NULL;
991 } 993 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698