summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgaolez <gaolez@codeaurora.org>2019-04-09 14:37:02 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-07-09 00:41:27 -0700
commit61f49f98313634b00b3116ea15b51e5b2ca25ede (patch)
tree0c3bb099f8478000f2a9b00415fdce4b586b965d
parentcd15da232745b0e4318a85a145635e2d38d86446 (diff)
qcacld-2.0: Add rx time statistic for dump survey
Add rx time statistic for cfg80211 dump survey interface function. Change-Id: I3fa4046ca7657f92fe8fa5c13d72efec065afbcb
-rw-r--r--CORE/HDD/inc/wlan_hdd_main.h4
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c14
-rw-r--r--CORE/MAC/inc/sirApi.h2
-rw-r--r--CORE/SERVICES/WMA/wma.c1
4 files changed, 18 insertions, 3 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h
index ee2bc560d9f5..1e092c82a838 100644
--- a/CORE/HDD/inc/wlan_hdd_main.h
+++ b/CORE/HDD/inc/wlan_hdd_main.h
@@ -1730,8 +1730,10 @@ struct acs_dfs_policy {
* @cycle_count: cycle count
* @rx_clear_count: rx clear count
* @tx_frame_count: TX frame count
+ * @rx_frame_count: RX frame count
* @delta_cycle_count: delta of cc
* @delta_rx_clear_count: delta of rcc
+ * @delta_rx_frame_count: delta of rfc
* @delta_tx_frame_count: delta of tfc
* @clock_freq: clock frequence MHZ
*/
@@ -1741,9 +1743,11 @@ struct hdd_scan_chan_info {
uint32_t noise_floor;
uint32_t cycle_count;
uint32_t rx_clear_count;
+ uint32_t rx_frame_count;
uint32_t tx_frame_count;
uint32_t delta_cycle_count;
uint32_t delta_rx_clear_count;
+ uint32_t delta_rx_frame_count;
uint32_t delta_tx_frame_count;
uint32_t clock_freq;
};
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 409854a5bc6d..f0c53a7cb2d3 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -30948,6 +30948,7 @@ static void wlan_hdd_chan_info_cb(struct scan_chan_info *info)
chan[idx].noise_floor = info->noise_floor;
chan[idx].cycle_count = info->cycle_count;
chan[idx].rx_clear_count = info->rx_clear_count;
+ chan[idx].rx_frame_count = info->rx_frame_count;
chan[idx].tx_frame_count = info->tx_frame_count;
chan[idx].clock_freq = info->clock_freq;
break;
@@ -30960,6 +30961,10 @@ static void wlan_hdd_chan_info_cb(struct scan_chan_info *info)
info->rx_clear_count -
chan[idx].rx_clear_count;
+ chan[idx].delta_rx_frame_count =
+ info->rx_frame_count -
+ chan[idx].rx_frame_count;
+
chan[idx].delta_tx_frame_count =
info->tx_frame_count -
chan[idx].tx_frame_count;
@@ -31018,8 +31023,7 @@ void wlan_hdd_init_chan_info(hdd_context_t *hdd_ctx)
}
sme_set_chan_info_callback(
hdd_ctx->hHal,
- &wlan_hdd_chan_info_cb
- );
+ wlan_hdd_chan_info_cb);
}
}
@@ -31126,13 +31130,17 @@ static int __wlan_hdd_cfg80211_dump_survey(struct wiphy *wiphy,
survey->time_busy =
pHddCtx->chan_info[idx].delta_rx_clear_count /
(pHddCtx->chan_info[idx].clock_freq * 1000);
+ survey->time_rx =
+ pHddCtx->chan_info[idx].delta_rx_frame_count /
+ (pHddCtx->chan_info[idx].clock_freq * 1000);
survey->time_tx =
pHddCtx->chan_info[idx].delta_tx_frame_count /
(pHddCtx->chan_info[idx].clock_freq * 1000);
survey->filled |= SURVEY_INFO_TIME |
SURVEY_INFO_TIME_BUSY |
- SURVEY_INFO_TIME_TX;
+ SURVEY_INFO_TIME_TX |
+ SURVEY_INFO_TIME_RX;
#else
survey->channel_time =
pHddCtx->chan_info[idx].delta_cycle_count /
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index 436f3a69fdc0..0dff0733ba87 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -8592,6 +8592,7 @@ struct sme_flush_pending {
* @cycle_count: cycle count
* @rx_clear_count: rx clear count
* @tx_frame_count: TX frame count
+ * @rx_frame_count: RX frame count
* @clock_freq: clock frequence MHZ
*/
struct scan_chan_info {
@@ -8601,6 +8602,7 @@ struct scan_chan_info {
uint32_t cycle_count;
uint32_t rx_clear_count;
uint32_t tx_frame_count;
+ uint32_t rx_frame_count;
uint32_t clock_freq;
};
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index ecc48eead24f..cf2e99bbb200 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -8989,6 +8989,7 @@ wma_chan_info_event_handler(void *handle, u_int8_t *event_buf,
return -EINVAL;
}
buf.tx_frame_count = event->tx_frame_cnt;
+ buf.rx_frame_count = event->rx_frame_count;
buf.clock_freq = event->mac_clk_mhz;
buf.cmd_flag = event->cmd_flags;
buf.freq = event->freq;