qcacld-3.0: Add db2dbm conversion check
When WMI_IFACE_LINK_STATS_EVENTID is received, WMA layer should check FW service bit to confirm if HW db2dbm conversion is enabled or not, or the final results indicated to HDD layer will be inaccurate. Add FW service bit checking to make sure db2dbm conversion is done by driver when HW doesn't support it. Change-Id: Id369999e4d5a6805200de82d1e8caf3121582c40 CRs-Fixed: 2506620
This commit is contained in:
parent
1d48051e26
commit
70ebc4e9ff
@ -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,
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user