diff options
| author | Srinivas Girigowda <sgirigow@qca.qualcomm.com> | 2016-03-16 18:24:52 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-03-21 13:05:48 +0530 |
| commit | 0fb5424b56a8e29bd9643f2f73c5ff6febdd9e36 (patch) | |
| tree | 9d6d562ec5ae7879b5d47f681dc52463822300b7 | |
| parent | 66df2d502728bbe33c1a8e68c69369b82889b624 (diff) | |
qcacld-2.0: Add support for tx time per power level in radio stats
Modify the existing radio_stat structure to add time spent
in each tranmission power level.
Change-Id: Ia5da997aabd5331e736d7367c9d74dfaf3e47906
CRs-Fixed: 992365
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg80211.h | 8 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 13 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 5 |
3 files changed, 22 insertions, 4 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h index 5f17aee7da0a..ff89ac4e5cff 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg80211.h +++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h @@ -1106,6 +1106,14 @@ enum qca_wlan_vendor_attr_ll_stats_results /* Unsigned 32bit value to indicate ll stats result type */ QCA_WLAN_VENDOR_ATTR_LL_STATS_TYPE, + /* Unsigned 32bit value */ + QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_TX_LEVELS, + + /* Unsigned 32bit value + * Number of msecs the radio spent in transmitting for each power level + */ + QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME_PER_LEVEL, + /* keep last */ QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_LL_STATS_MAX = diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 9f9c05668cf9..b8a8f3a9d038 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -6006,11 +6006,16 @@ static void hdd_link_layer_process_radio_stats(hdd_adapter_t *pAdapter, QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_HS20, pWifiRadioStat->onTimeHs20) || nla_put_u32(vendor_event, + QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_TX_LEVELS, + MAX_TPC_LEVELS) || + nla_put(vendor_event, + QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME_PER_LEVEL, + sizeof(u32) * MAX_TPC_LEVELS, + pWifiRadioStat->tx_time_per_tpc) || + nla_put_u32(vendor_event, QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_CHANNELS, - pWifiRadioStat->numChannels)) - { - hddLog(VOS_TRACE_LEVEL_ERROR, - FL("QCA_WLAN_VENDOR_ATTR put fail")); + pWifiRadioStat->numChannels)) { + hddLog(LOGE, FL("QCA_WLAN_VENDOR_ATTR put fail")); kfree_skb(vendor_event); return ; diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index 8333a34cdc9c..461b5a5d5347 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -5828,6 +5828,7 @@ typedef struct tANI_U32 ccaBusyTime; } tSirWifiChannelStats, *tpSirWifiChannelStats; +#define MAX_TPC_LEVELS 64 /* radio statistics */ typedef struct { @@ -5869,6 +5870,10 @@ typedef struct tANI_U32 onTimeHs20; /* number of channels */ tANI_U32 numChannels; + + /** tx time (in milliseconds) per TPC level (0.5 dBm) */ + uint32_t tx_time_per_tpc[MAX_TPC_LEVELS]; + /* channel statistics tSirWifiChannelStats */ tSirWifiChannelStats channels[0]; } tSirWifiRadioStat, *tpSirWifiRadioStat; |
