diff --git a/core/hdd/src/wlan_hdd_debugfs_llstat.c b/core/hdd/src/wlan_hdd_debugfs_llstat.c index e4ab8708f231..7f6d50475a54 100644 --- a/core/hdd/src/wlan_hdd_debugfs_llstat.c +++ b/core/hdd/src/wlan_hdd_debugfs_llstat.c @@ -91,7 +91,7 @@ void hdd_debugfs_process_iface_stats(struct hdd_adapter *adapter, buffer += len; ll_stats.len += len; len = scnprintf(buffer, DEBUGFS_LLSTATS_BUF_SIZE - ll_stats.len, - "\nbeacon_rx: %u, mgmt_rx: %u, mgmt_action_rx: %u, mgmt_action_tx: %u, rssi_mgmt: %u, rssi_data: %u, rssi_ack: %u, is_leaky_ap: %u, avg_rx_frms_leaked: %u, rx_leak_window: %u, average_tsf_offset: %llu, Tx RTS success count: %u, Tx RTS fail count: %u, Tx ppdu success count: %u, Tx ppdu fail count: %u, Connected duration: %u, Disconnected duration: %u, RTT ranging duration: %u, RTT responder duration: %u, Num tx probes: %u, Num beacon miss: %u,\n\nNumber of AC: %d", + "\nbeacon_rx: %u, mgmt_rx: %u, mgmt_action_rx: %u, mgmt_action_tx: %u, rssi_mgmt: %d, rssi_data: %d, rssi_ack: %d, is_leaky_ap: %u, avg_rx_frms_leaked: %u, rx_leak_window: %u, average_tsf_offset: %llu, Tx RTS success count: %u, Tx RTS fail count: %u, Tx ppdu success count: %u, Tx ppdu fail count: %u, Connected duration: %u, Disconnected duration: %u, RTT ranging duration: %u, RTT responder duration: %u, Num tx probes: %u, Num beacon miss: %u,\n\nNumber of AC: %d", link_stats->beacon_rx, link_stats->mgmt_rx, link_stats->mgmt_action_rx, link_stats->mgmt_action_tx, link_stats->rssi_mgmt, link_stats->rssi_data, diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c index ccb37b207bd9..1dd4c8ea9d26 100644 --- a/core/wma/src/wma_utils.c +++ b/core/wma/src/wma_utils.c @@ -2097,6 +2097,7 @@ int wma_unified_link_iface_stats_event_handler(void *handle, uint8_t *cmd_param_info, uint32_t len) { + tp_wma_handle wma_handle = (tp_wma_handle)handle; WMI_IFACE_LINK_STATS_EVENTID_param_tlvs *param_tlvs; wmi_iface_link_stats_event_fixed_param *fixed_param; wmi_iface_link_stats *link_stats, *iface_link_stats; @@ -2108,6 +2109,7 @@ int wma_unified_link_iface_stats_event_handler(void *handle, size_t link_stats_size, ac_stats_size, iface_info_size; size_t link_stats_results_size, offload_stats_size; size_t total_ac_size, total_offload_size; + bool db2dbm_enabled; struct mac_context *mac = cds_get_context(QDF_MODULE_ID_PE); @@ -2200,6 +2202,17 @@ int wma_unified_link_iface_stats_event_handler(void *handle, iface_link_stats = &iface_stat->link_stats; *iface_link_stats = *link_stats; + db2dbm_enabled = wmi_service_enabled(wma_handle->wmi_handle, + wmi_service_hw_db2dbm_support); + if (!db2dbm_enabled) { + /* FW doesn't indicate support for HW db2dbm conversion */ + iface_link_stats->rssi_mgmt += WMA_TGT_NOISE_FLOOR_DBM; + iface_link_stats->rssi_data += WMA_TGT_NOISE_FLOOR_DBM; + iface_link_stats->rssi_ack += WMA_TGT_NOISE_FLOOR_DBM; + } + WMA_LOGD("db2dbm: %d, rssi_mgmt: %d, rssi_data: %d, rssi_ack: %d", + db2dbm_enabled, iface_link_stats->rssi_mgmt, + iface_link_stats->rssi_data, iface_link_stats->rssi_ack); /* Copy roaming state */ iface_stat->info.roaming = link_stats->roam_state;