mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
qcacld-3.0: Add diag event support for ACS
Send ACS diag event when SAP is doing ACS. Change-Id: I409b57dce98a12796cfee1619c8efe47a403bd1d CRs-Fixed: 2238666
This commit is contained in:
parent
38d97ab4de
commit
cb0ded2438
6 changed files with 81 additions and 4 deletions
|
|
@ -2586,7 +2586,11 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
|
|||
sap_config->acs_cfg.ch_width, ht_enabled, vht_enabled,
|
||||
sap_config->acs_cfg.start_ch, sap_config->acs_cfg.end_ch,
|
||||
sap_config->acs_cfg.band);
|
||||
|
||||
host_log_acs_req_event(adapter->dev->name,
|
||||
csr_phy_mode_str(sap_config->acs_cfg.hw_mode),
|
||||
ch_width, ht_enabled, vht_enabled,
|
||||
sap_config->acs_cfg.start_ch,
|
||||
sap_config->acs_cfg.end_ch);
|
||||
if (hdd_ctx->config->auto_channel_select_weight)
|
||||
sap_config->auto_channel_select_weight =
|
||||
hdd_ctx->config->auto_channel_select_weight;
|
||||
|
|
|
|||
|
|
@ -286,6 +286,31 @@ static QDF_STATUS sap_hdd_signal_event_handler(void *ctx)
|
|||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* acs_scan_done_status_str() - parse scan status to string
|
||||
* @status: scan status
|
||||
*
|
||||
* This function parse scan status to string
|
||||
*
|
||||
* Return: status string
|
||||
*
|
||||
*/
|
||||
static const char *acs_scan_done_status_str(eCsrScanStatus status)
|
||||
{
|
||||
switch (status) {
|
||||
case eCSR_SCAN_SUCCESS:
|
||||
return "Success";
|
||||
case eCSR_SCAN_FAILURE:
|
||||
return "Failure";
|
||||
case eCSR_SCAN_ABORT:
|
||||
return "Abort";
|
||||
case eCSR_SCAN_FOUND_PEER:
|
||||
return "Found peer";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
QDF_STATUS wlansap_pre_start_bss_acs_scan_callback(tHalHandle hal_handle,
|
||||
struct sap_context *sap_ctx,
|
||||
uint8_t sessionid,
|
||||
|
|
@ -297,6 +322,8 @@ QDF_STATUS wlansap_pre_start_bss_acs_scan_callback(tHalHandle hal_handle,
|
|||
uint8_t oper_channel = 0;
|
||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||
|
||||
host_log_acs_scan_done(acs_scan_done_status_str(scan_status),
|
||||
sessionid, scanid);
|
||||
if (eCSR_SCAN_SUCCESS != scan_status) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("CSR scan_status = eCSR_SCAN_ABORT/FAILURE (%d), choose default channel"),
|
||||
|
|
|
|||
|
|
@ -1700,6 +1700,10 @@ debug_info:
|
|||
"In %s, Chan=%d Weight= %d rssiAgr=%d bssCount=%d",
|
||||
__func__, pSpectCh->chNum, pSpectCh->weight,
|
||||
pSpectCh->rssiAgr, pSpectCh->bssCount);
|
||||
host_log_acs_chan_spect_weight(pSpectCh->chNum,
|
||||
(uint16_t)pSpectCh->weight,
|
||||
pSpectCh->rssiAgr,
|
||||
pSpectCh->bssCount);
|
||||
/* ------ Debug Info ------ */
|
||||
pSpectCh++;
|
||||
}
|
||||
|
|
@ -2837,6 +2841,8 @@ sap_ch_sel_end:
|
|||
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
FL("Running SAP Ch select Completed, Ch=%d"), best_ch_num);
|
||||
host_log_acs_best_chan(best_ch_num, sap_ctx->acsBestChannelInfo.weight);
|
||||
|
||||
if (best_ch_num > 0 && best_ch_num <= 252)
|
||||
return best_ch_num;
|
||||
else
|
||||
|
|
|
|||
|
|
@ -851,6 +851,8 @@ QDF_STATUS sap_goto_channel_sel(struct sap_context *sap_context,
|
|||
#endif
|
||||
tHalHandle h_hal;
|
||||
uint8_t con_ch;
|
||||
uint8_t vdev_id;
|
||||
uint32_t scan_id;
|
||||
|
||||
h_hal = cds_get_context(QDF_MODULE_ID_SME);
|
||||
if (NULL == h_hal) {
|
||||
|
|
@ -1005,8 +1007,10 @@ QDF_STATUS sap_goto_channel_sel(struct sap_context *sap_context,
|
|||
|
||||
ucfg_scan_init_default_params(vdev, req);
|
||||
req->scan_req.dwell_time_active = 0;
|
||||
req->scan_req.scan_id = ucfg_scan_get_scan_id(mac_ctx->psoc);
|
||||
req->scan_req.vdev_id = wlan_vdev_get_id(vdev);
|
||||
scan_id = ucfg_scan_get_scan_id(mac_ctx->psoc);
|
||||
req->scan_req.scan_id = scan_id;
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
req->scan_req.vdev_id = vdev_id;
|
||||
req->scan_req.scan_req_id = sap_context->req_id;
|
||||
sap_get_channel_list(sap_context, &channel_list,
|
||||
&num_of_channels);
|
||||
|
|
@ -1074,8 +1078,9 @@ QDF_STATUS sap_goto_channel_sel(struct sap_context *sap_context,
|
|||
} else {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
FL("return sme_ScanReq, scanID=%d, Ch=%d"),
|
||||
req->scan_req.scan_id,
|
||||
scan_id,
|
||||
sap_context->channel);
|
||||
host_log_acs_scan_start(scan_id, vdev_id);
|
||||
}
|
||||
#ifdef FEATURE_WLAN_AP_AP_ACS_OPTIMIZE
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1709,6 +1709,7 @@ QDF_STATUS csr_set_channels(tHalHandle hHal, tCsrConfigParam *pParam);
|
|||
/* enum to string conversion for debug output */
|
||||
const char *get_e_roam_cmd_status_str(eRoamCmdStatus val);
|
||||
const char *get_e_csr_roam_result_str(eCsrRoamResult val);
|
||||
const char *csr_phy_mode_str(eCsrPhyMode phy_mode);
|
||||
QDF_STATUS csr_set_phy_mode(tHalHandle hHal, uint32_t phyMode,
|
||||
enum band_info eBand, bool *pfRestartNeeded);
|
||||
typedef void (*csr_roamLinkQualityIndCallback)
|
||||
|
|
|
|||
|
|
@ -374,6 +374,40 @@ const char *get_e_csr_roam_result_str(eCsrRoamResult val)
|
|||
}
|
||||
}
|
||||
|
||||
const char *csr_phy_mode_str(eCsrPhyMode phy_mode)
|
||||
{
|
||||
switch (phy_mode) {
|
||||
case eCSR_DOT11_MODE_abg:
|
||||
return "abg";
|
||||
case eCSR_DOT11_MODE_11a:
|
||||
return "11a";
|
||||
case eCSR_DOT11_MODE_11b:
|
||||
return "11b";
|
||||
case eCSR_DOT11_MODE_11g:
|
||||
return "11g";
|
||||
case eCSR_DOT11_MODE_11n:
|
||||
return "11n";
|
||||
case eCSR_DOT11_MODE_11g_ONLY:
|
||||
return "11g_only";
|
||||
case eCSR_DOT11_MODE_11n_ONLY:
|
||||
return "11n_only";
|
||||
case eCSR_DOT11_MODE_11b_ONLY:
|
||||
return "11b_only";
|
||||
case eCSR_DOT11_MODE_11ac:
|
||||
return "11ac";
|
||||
case eCSR_DOT11_MODE_11ac_ONLY:
|
||||
return "11ac_only";
|
||||
case eCSR_DOT11_MODE_AUTO:
|
||||
return "auto";
|
||||
case eCSR_DOT11_MODE_11ax:
|
||||
return "11ax";
|
||||
case eCSR_DOT11_MODE_11ax_ONLY:
|
||||
return "11ax_only";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
void purge_sme_session_active_scan_cmd_list(struct sAniSirGlobal *mac_ctx,
|
||||
uint32_t session_id)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue