diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-03-12 19:58:51 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-25 16:41:47 -0400 |
commit | 19758bef09abe9d2a14575ffb6f686947e97fcb1 (patch) | |
tree | e4975d3e59996b06e964b17af9be4fe692c5628a /drivers/net/wireless/iwlwifi/iwl4965-base.c | |
parent | c79dd5b5bc5a65822cdc9d571032c469ad7577d5 (diff) |
iwlwifi: Add TX/RX statistcs to driver
This patch supports collecting of TX and RX statistics in the driver.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index 4e899ce81b3..4f6ed694206 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -2529,7 +2529,13 @@ static void iwl4965_build_tx_cmd_basic(struct iwl_priv *priv, | |||
2529 | cmd->cmd.tx.tx_flags = tx_flags; | 2529 | cmd->cmd.tx.tx_flags = tx_flags; |
2530 | cmd->cmd.tx.next_frame_len = 0; | 2530 | cmd->cmd.tx.next_frame_len = 0; |
2531 | } | 2531 | } |
2532 | 2532 | static void iwl_update_tx_stats(struct iwl_priv *priv, u16 fc, u16 len) | |
2533 | { | ||
2534 | /* 0 - mgmt, 1 - cnt, 2 - data */ | ||
2535 | int idx = (fc & IEEE80211_FCTL_FTYPE) >> 2; | ||
2536 | priv->tx_stats[idx].cnt++; | ||
2537 | priv->tx_stats[idx].bytes += len; | ||
2538 | } | ||
2533 | /** | 2539 | /** |
2534 | * iwl4965_get_sta_id - Find station's index within station table | 2540 | * iwl4965_get_sta_id - Find station's index within station table |
2535 | * | 2541 | * |
@@ -2776,6 +2782,8 @@ static int iwl4965_tx_skb(struct iwl_priv *priv, | |||
2776 | /* set is_hcca to 0; it probably will never be implemented */ | 2782 | /* set is_hcca to 0; it probably will never be implemented */ |
2777 | iwl4965_hw_build_tx_cmd_rate(priv, out_cmd, ctl, hdr, sta_id, 0); | 2783 | iwl4965_hw_build_tx_cmd_rate(priv, out_cmd, ctl, hdr, sta_id, 0); |
2778 | 2784 | ||
2785 | iwl_update_tx_stats(priv, fc, len); | ||
2786 | |||
2779 | scratch_phys = txcmd_phys + sizeof(struct iwl4965_cmd_header) + | 2787 | scratch_phys = txcmd_phys + sizeof(struct iwl4965_cmd_header) + |
2780 | offsetof(struct iwl4965_tx_cmd, scratch); | 2788 | offsetof(struct iwl4965_tx_cmd, scratch); |
2781 | out_cmd->cmd.tx.dram_lsb_ptr = cpu_to_le32(scratch_phys); | 2789 | out_cmd->cmd.tx.dram_lsb_ptr = cpu_to_le32(scratch_phys); |