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/iwl-4965.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/iwl-4965.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 7b0ad728f927..b2ea4d4f3f31 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -3337,6 +3337,14 @@ static void iwl4965_add_radiotap(struct iwl_priv *priv, | |||
3337 | stats->flag |= RX_FLAG_RADIOTAP; | 3337 | stats->flag |= RX_FLAG_RADIOTAP; |
3338 | } | 3338 | } |
3339 | 3339 | ||
3340 | static void iwl_update_rx_stats(struct iwl_priv *priv, u16 fc, u16 len) | ||
3341 | { | ||
3342 | /* 0 - mgmt, 1 - cnt, 2 - data */ | ||
3343 | int idx = (fc & IEEE80211_FCTL_FTYPE) >> 2; | ||
3344 | priv->rx_stats[idx].cnt++; | ||
3345 | priv->rx_stats[idx].bytes += len; | ||
3346 | } | ||
3347 | |||
3340 | static void iwl4965_handle_data_packet(struct iwl_priv *priv, int is_data, | 3348 | static void iwl4965_handle_data_packet(struct iwl_priv *priv, int is_data, |
3341 | int include_phy, | 3349 | int include_phy, |
3342 | struct iwl4965_rx_mem_buffer *rxb, | 3350 | struct iwl4965_rx_mem_buffer *rxb, |
@@ -3406,6 +3414,7 @@ static void iwl4965_handle_data_packet(struct iwl_priv *priv, int is_data, | |||
3406 | if (priv->add_radiotap) | 3414 | if (priv->add_radiotap) |
3407 | iwl4965_add_radiotap(priv, rxb->skb, rx_start, stats, ampdu_status); | 3415 | iwl4965_add_radiotap(priv, rxb->skb, rx_start, stats, ampdu_status); |
3408 | 3416 | ||
3417 | iwl_update_rx_stats(priv, le16_to_cpu(hdr->frame_control), len); | ||
3409 | ieee80211_rx_irqsafe(priv->hw, rxb->skb, stats); | 3418 | ieee80211_rx_irqsafe(priv->hw, rxb->skb, stats); |
3410 | priv->alloc_rxb_skb--; | 3419 | priv->alloc_rxb_skb--; |
3411 | rxb->skb = NULL; | 3420 | rxb->skb = NULL; |