mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
qcacld-3.0: Replace channel with frequency in csr_roamstart_bssparams
Replace channel ID with frequency in struct csr_roamstart_bssparams. Change-Id: I826db5eea09fd7b5789c4907168d30186e5d5435 CRs-Fixed: 2518017
This commit is contained in:
parent
3685ef90af
commit
9f94d78a66
3 changed files with 70 additions and 52 deletions
|
|
@ -231,7 +231,7 @@ struct csr_roamstart_bssparams {
|
|||
ePhyChanBondState cbMode;
|
||||
tSirMacRateSet operationalRateSet;
|
||||
tSirMacRateSet extendedRateSet;
|
||||
uint8_t operationChn;
|
||||
uint32_t operation_chan_freq;
|
||||
struct ch_params ch_params;
|
||||
enum csr_cfgdot11mode uCfgDot11Mode;
|
||||
uint8_t privacy;
|
||||
|
|
|
|||
|
|
@ -13964,19 +13964,20 @@ csr_roam_get_bss_start_parms(struct mac_context *mac,
|
|||
bool skip_hostapd_rate)
|
||||
{
|
||||
enum band_info band;
|
||||
uint8_t opr_ch = 0;
|
||||
uint32_t opr_ch_freq = 0;
|
||||
tSirNwType nw_type;
|
||||
uint8_t tmp_opr_ch = 0;
|
||||
uint32_t tmp_opr_ch_freq = 0;
|
||||
tSirMacRateSet *opr_rates = &pParam->operationalRateSet;
|
||||
tSirMacRateSet *ext_rates = &pParam->extendedRateSet;
|
||||
|
||||
if (pProfile->ChannelInfo.numOfChannels &&
|
||||
pProfile->ChannelInfo.freq_list)
|
||||
tmp_opr_ch = wlan_reg_freq_to_chan(
|
||||
mac->pdev, pProfile->ChannelInfo.freq_list[0]);
|
||||
tmp_opr_ch_freq = pProfile->ChannelInfo.freq_list[0];
|
||||
|
||||
pParam->uCfgDot11Mode = csr_roam_get_phy_mode_band_for_bss(mac,
|
||||
pProfile, tmp_opr_ch, &band);
|
||||
pParam->uCfgDot11Mode =
|
||||
csr_roam_get_phy_mode_band_for_bss(mac, pProfile,
|
||||
wlan_reg_freq_to_chan(mac->pdev, tmp_opr_ch_freq),
|
||||
&band);
|
||||
|
||||
if (((pProfile->csrPersona == QDF_P2P_CLIENT_MODE)
|
||||
|| (pProfile->csrPersona == QDF_P2P_GO_MODE))
|
||||
|
|
@ -14002,7 +14003,7 @@ csr_roam_get_bss_start_parms(struct mac_context *mac,
|
|||
pProfile->extended_rates.numRates)) {
|
||||
csr_populate_supported_rates_from_hostapd(opr_rates,
|
||||
ext_rates, pProfile);
|
||||
pParam->operationChn = tmp_opr_ch;
|
||||
pParam->operation_chan_freq = tmp_opr_ch_freq;
|
||||
} else {
|
||||
switch (nw_type) {
|
||||
default:
|
||||
|
|
@ -14012,12 +14013,14 @@ csr_roam_get_bss_start_parms(struct mac_context *mac,
|
|||
return QDF_STATUS_E_INVAL;
|
||||
case eSIR_11A_NW_TYPE:
|
||||
csr_populate_basic_rates(opr_rates, true, true);
|
||||
if (eCSR_OPERATING_CHANNEL_ANY != tmp_opr_ch) {
|
||||
opr_ch = tmp_opr_ch;
|
||||
if (eCSR_OPERATING_CHANNEL_ANY != tmp_opr_ch_freq) {
|
||||
opr_ch_freq = tmp_opr_ch_freq;
|
||||
break;
|
||||
}
|
||||
opr_ch = csr_roam_get_ibss_start_channel_number50(mac);
|
||||
if (0 == opr_ch &&
|
||||
opr_ch_freq =
|
||||
wlan_reg_chan_to_freq(mac->pdev,
|
||||
csr_roam_get_ibss_start_channel_number50(mac));
|
||||
if (0 == opr_ch_freq &&
|
||||
CSR_IS_PHY_MODE_DUAL_BAND(pProfile->phyMode) &&
|
||||
CSR_IS_PHY_MODE_DUAL_BAND(
|
||||
mac->roam.configParam.phyMode)) {
|
||||
|
|
@ -14028,19 +14031,20 @@ csr_roam_get_bss_start_parms(struct mac_context *mac,
|
|||
* always picks 11a for AUTO
|
||||
*/
|
||||
nw_type = eSIR_11B_NW_TYPE;
|
||||
opr_ch =
|
||||
csr_roam_get_ibss_start_channel_number24(mac);
|
||||
csr_populate_basic_rates(opr_rates, false,
|
||||
true);
|
||||
opr_ch_freq =
|
||||
wlan_reg_chan_to_freq(mac->pdev,
|
||||
csr_roam_get_ibss_start_channel_number24(mac));
|
||||
csr_populate_basic_rates(opr_rates, false, true);
|
||||
}
|
||||
break;
|
||||
case eSIR_11B_NW_TYPE:
|
||||
csr_populate_basic_rates(opr_rates, false, true);
|
||||
if (eCSR_OPERATING_CHANNEL_ANY == tmp_opr_ch)
|
||||
opr_ch =
|
||||
csr_roam_get_ibss_start_channel_number24(mac);
|
||||
if (eCSR_OPERATING_CHANNEL_ANY == tmp_opr_ch_freq)
|
||||
opr_ch_freq =
|
||||
wlan_reg_chan_to_freq(mac->pdev,
|
||||
csr_roam_get_ibss_start_channel_number24(mac));
|
||||
else
|
||||
opr_ch = tmp_opr_ch;
|
||||
opr_ch_freq = tmp_opr_ch_freq;
|
||||
break;
|
||||
case eSIR_11G_NW_TYPE:
|
||||
/* For P2P Client and P2P GO, disable 11b rates */
|
||||
|
|
@ -14055,14 +14059,15 @@ csr_roam_get_bss_start_parms(struct mac_context *mac,
|
|||
csr_populate_basic_rates(ext_rates, true,
|
||||
false);
|
||||
}
|
||||
if (eCSR_OPERATING_CHANNEL_ANY == tmp_opr_ch)
|
||||
opr_ch =
|
||||
csr_roam_get_ibss_start_channel_number24(mac);
|
||||
if (eCSR_OPERATING_CHANNEL_ANY == tmp_opr_ch_freq)
|
||||
opr_ch_freq =
|
||||
wlan_reg_chan_to_freq(mac->pdev,
|
||||
csr_roam_get_ibss_start_channel_number24(mac));
|
||||
else
|
||||
opr_ch = tmp_opr_ch;
|
||||
opr_ch_freq = tmp_opr_ch_freq;
|
||||
break;
|
||||
}
|
||||
pParam->operationChn = opr_ch;
|
||||
pParam->operation_chan_freq = opr_ch_freq;
|
||||
}
|
||||
|
||||
pParam->sirNwType = nw_type;
|
||||
|
|
@ -14090,8 +14095,7 @@ csr_roam_get_bss_start_parms_from_bss_desc(
|
|||
|
||||
pParam->sirNwType = bss_desc->nwType;
|
||||
pParam->cbMode = PHY_SINGLE_CHANNEL_CENTERED;
|
||||
pParam->operationChn = wlan_reg_freq_to_chan(mac->pdev,
|
||||
bss_desc->chan_freq);
|
||||
pParam->operation_chan_freq = bss_desc->chan_freq;
|
||||
qdf_mem_copy(&pParam->bssid, bss_desc->bssId,
|
||||
sizeof(struct qdf_mac_addr));
|
||||
|
||||
|
|
@ -14135,8 +14139,11 @@ csr_roam_get_bss_start_parms_from_bss_desc(
|
|||
qdf_mem_copy(pParam->ssId.ssId, pIes->SSID.ssid,
|
||||
pParam->ssId.length);
|
||||
}
|
||||
pParam->cbMode = csr_get_cb_mode_from_ies(mac, pParam->operationChn,
|
||||
pIes);
|
||||
pParam->cbMode =
|
||||
csr_get_cb_mode_from_ies(mac,
|
||||
wlan_reg_freq_to_chan(mac->pdev,
|
||||
pParam->operation_chan_freq),
|
||||
pIes);
|
||||
}
|
||||
|
||||
static void csr_roam_determine_max_rate_for_ad_hoc(struct mac_context *mac,
|
||||
|
|
@ -14194,7 +14201,9 @@ QDF_STATUS csr_roam_issue_start_bss(struct mac_context *mac, uint32_t sessionId,
|
|||
else
|
||||
pIbssLog->channelSetting = SPECIFIED;
|
||||
|
||||
pIbssLog->operatingChannel = pParam->operationChn;
|
||||
pIbssLog->operatingChannel =
|
||||
wlan_reg_freq_to_chan(mac->pdev,
|
||||
pParam->operation_chan_freq);
|
||||
WLAN_HOST_DIAG_LOG_REPORT(pIbssLog);
|
||||
}
|
||||
}
|
||||
|
|
@ -14210,10 +14219,13 @@ QDF_STATUS csr_roam_issue_start_bss(struct mac_context *mac, uint32_t sessionId,
|
|||
pParam->dtimPeriod = pProfile->dtimPeriod;
|
||||
pParam->ApUapsdEnable = pProfile->ApUapsdEnable;
|
||||
pParam->ssidHidden = pProfile->SSIDs.SSIDList[0].ssidHidden;
|
||||
if (CSR_IS_INFRA_AP(pProfile) && (pParam->operationChn != 0)) {
|
||||
if (csr_is_valid_channel(mac, pParam->operationChn) !=
|
||||
if (CSR_IS_INFRA_AP(pProfile) && (pParam->operation_chan_freq != 0)) {
|
||||
if (csr_is_valid_channel(mac, wlan_reg_freq_to_chan(mac->pdev,
|
||||
pParam->operation_chan_freq)) !=
|
||||
QDF_STATUS_SUCCESS) {
|
||||
pParam->operationChn = INFRA_AP_DEFAULT_CHANNEL;
|
||||
pParam->operation_chan_freq =
|
||||
wlan_reg_chan_to_freq(mac->pdev,
|
||||
INFRA_AP_DEFAULT_CHANNEL);
|
||||
pParam->ch_params.ch_width = CH_WIDTH_20MHZ;
|
||||
}
|
||||
}
|
||||
|
|
@ -14224,8 +14236,7 @@ QDF_STATUS csr_roam_issue_start_bss(struct mac_context *mac, uint32_t sessionId,
|
|||
|
||||
pParam->uCfgDot11Mode =
|
||||
csr_roam_get_phy_mode_band_for_bss(mac, pProfile,
|
||||
pParam->
|
||||
operationChn,
|
||||
wlan_reg_freq_to_chan(mac->pdev, pParam->operation_chan_freq),
|
||||
&band);
|
||||
pParam->bssPersona = pProfile->csrPersona;
|
||||
|
||||
|
|
@ -14279,7 +14290,7 @@ void csr_roam_prepare_bss_params(struct mac_context *mac, uint32_t sessionId,
|
|||
struct bss_config_param *pBssConfig,
|
||||
tDot11fBeaconIEs *pIes)
|
||||
{
|
||||
uint8_t channel;
|
||||
uint32_t channel;
|
||||
ePhyChanBondState cbMode = PHY_SINGLE_CHANNEL_CENTERED;
|
||||
struct csr_roam_session *pSession = CSR_GET_SESSION(mac, sessionId);
|
||||
bool skip_hostapd_rate = !pProfile->chan_switch_hostapd_rate_enabled;
|
||||
|
|
@ -14314,11 +14325,11 @@ void csr_roam_prepare_bss_params(struct mac_context *mac, uint32_t sessionId,
|
|||
qdf_mem_zero(&pSession->bssParams.bssid,
|
||||
sizeof(struct qdf_mac_addr));
|
||||
}
|
||||
channel = pSession->bssParams.operationChn;
|
||||
channel = pSession->bssParams.operation_chan_freq;
|
||||
/* Set operating frequency in pProfile which will be used */
|
||||
/* in csr_roam_set_bss_config_cfg() to determine channel bonding */
|
||||
/* mode and will be configured in CFG later */
|
||||
pProfile->op_freq = wlan_reg_chan_to_freq(mac->pdev, channel);
|
||||
pProfile->op_freq = channel;
|
||||
|
||||
if (channel == 0)
|
||||
sme_err("CSR cannot find a channel to start IBSS");
|
||||
|
|
@ -14327,7 +14338,7 @@ void csr_roam_prepare_bss_params(struct mac_context *mac, uint32_t sessionId,
|
|||
&pSession->bssParams.
|
||||
operationalRateSet);
|
||||
if (CSR_IS_INFRA_AP(pProfile) || CSR_IS_START_IBSS(pProfile)) {
|
||||
if (WLAN_REG_IS_24GHZ_CH(channel)) {
|
||||
if (WLAN_REG_IS_24GHZ_CH_FREQ(channel)) {
|
||||
cbMode =
|
||||
mac->roam.configParam.
|
||||
channelBondingMode24GHz;
|
||||
|
|
@ -16623,7 +16634,8 @@ QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, uint32_t
|
|||
else
|
||||
wTmp = MLME_CFG_BEACON_INTERVAL_DEF;
|
||||
|
||||
csr_validate_mcc_beacon_interval(mac, pParam->operationChn,
|
||||
csr_validate_mcc_beacon_interval(mac,
|
||||
wlan_reg_freq_to_chan(mac->pdev, pParam->operation_chan_freq),
|
||||
&wTmp, sessionId, pParam->bssPersona);
|
||||
/* Update the beacon Interval */
|
||||
pParam->beaconInterval = wTmp;
|
||||
|
|
@ -16636,7 +16648,8 @@ QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, uint32_t
|
|||
#endif
|
||||
pMsg->bssType = csr_translate_bsstype_to_mac_type(bssType);
|
||||
qdf_mem_copy(&pMsg->ssId, &pParam->ssId, sizeof(pParam->ssId));
|
||||
pMsg->channelId = pParam->operationChn;
|
||||
pMsg->channelId =
|
||||
wlan_reg_freq_to_chan(mac->pdev, pParam->operation_chan_freq);
|
||||
/* What should we really do for the cbmode. */
|
||||
pMsg->cbMode = (ePhyChanBondState) pParam->cbMode;
|
||||
pMsg->vht_channel_width = pParam->ch_params.ch_width;
|
||||
|
|
@ -16709,7 +16722,8 @@ QDF_STATUS csr_send_mb_start_bss_req_msg(struct mac_context *mac, uint32_t
|
|||
csr_start_bss_copy_he_cap(pMsg, pSession);
|
||||
/* change the HE caps like sts per band */
|
||||
CSR_REVISE_REQ_HE_CAP_PER_BAND(pMsg, mac,
|
||||
pParam->operationChn);
|
||||
wlan_reg_freq_to_chan(mac->pdev,
|
||||
pParam->operation_chan_freq));
|
||||
}
|
||||
|
||||
pMsg->add_ie_params = pParam->add_ie_params;
|
||||
|
|
@ -20696,8 +20710,9 @@ static bool csr_is_conn_allow_2g_band(struct mac_context *mac_ctx, uint32_t chnl
|
|||
sap_session_id = csr_find_session_by_type(mac_ctx, QDF_SAP_MODE);
|
||||
if (WLAN_UMAC_VDEV_ID_MAX != sap_session_id) {
|
||||
sap_session = CSR_GET_SESSION(mac_ctx, sap_session_id);
|
||||
if ((0 != sap_session->bssParams.operationChn) &&
|
||||
(sap_session->bssParams.operationChn != chnl)) {
|
||||
if ((0 != sap_session->bssParams.operation_chan_freq) &&
|
||||
(sap_session->bssParams.operation_chan_freq !=
|
||||
wlan_reg_chan_to_freq(mac_ctx->pdev, chnl))) {
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
"Can't allow STA to connect, chnls not same");
|
||||
|
|
@ -20734,11 +20749,11 @@ static bool csr_is_conn_allow_5g_band(struct mac_context *mac_ctx, uint32_t chnl
|
|||
p2pgo_session_id = csr_find_session_by_type(mac_ctx, QDF_P2P_GO_MODE);
|
||||
if (WLAN_UMAC_VDEV_ID_MAX != p2pgo_session_id) {
|
||||
p2pgo_session = CSR_GET_SESSION(mac_ctx, p2pgo_session_id);
|
||||
if ((0 != p2pgo_session->bssParams.operationChn) &&
|
||||
(eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED !=
|
||||
p2pgo_session->connectState) &&
|
||||
(p2pgo_session->bssParams.operationChn !=
|
||||
chnl)) {
|
||||
if ((0 != p2pgo_session->bssParams.operation_chan_freq) &&
|
||||
(eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED !=
|
||||
p2pgo_session->connectState) &&
|
||||
(p2pgo_session->bssParams.operation_chan_freq !=
|
||||
wlan_reg_chan_to_freq(mac_ctx->pdev, chnl))) {
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
"Can't allow STA to connect, chnls not same");
|
||||
|
|
|
|||
|
|
@ -2304,7 +2304,8 @@ static bool csr_validate_p2pcli_bcn_intrvl(struct mac_context *mac_ctx,
|
|||
sme_debug("Ignore Beacon Interval Validation...");
|
||||
} else if (roamsession->bssParams.bssPersona == QDF_P2P_GO_MODE) {
|
||||
/* Check for P2P go scenario */
|
||||
if ((roamsession->bssParams.operationChn != chnl_id)
|
||||
if ((roamsession->bssParams.operation_chan_freq !=
|
||||
wlan_reg_chan_to_freq(mac_ctx->pdev, chnl_id))
|
||||
&& (roamsession->bssParams.beaconInterval !=
|
||||
*bcn_interval)) {
|
||||
sme_err("BcnIntrvl is diff can't connect to P2P_GO network");
|
||||
|
|
@ -2413,7 +2414,8 @@ static bool csr_validate_sta_bcn_intrvl(struct mac_context *mac_ctx,
|
|||
return false;
|
||||
}
|
||||
if ((roamsession->bssParams.bssPersona == QDF_SAP_MODE) &&
|
||||
(roamsession->bssParams.operationChn != chnl_id)) {
|
||||
(roamsession->bssParams.operation_chan_freq !=
|
||||
wlan_reg_chan_to_freq(mac_ctx->pdev, chnl_id))) {
|
||||
/*
|
||||
* IF SAP has started and STA wants to connect
|
||||
* on different channel MCC should
|
||||
|
|
@ -2431,7 +2433,8 @@ static bool csr_validate_sta_bcn_intrvl(struct mac_context *mac_ctx,
|
|||
* change the BI of the P2P-GO
|
||||
*/
|
||||
if ((roamsession->bssParams.bssPersona == QDF_P2P_GO_MODE) &&
|
||||
(roamsession->bssParams.operationChn != chnl_id) &&
|
||||
(roamsession->bssParams.operation_chan_freq !=
|
||||
wlan_reg_chan_to_freq(mac_ctx->pdev, chnl_id)) &&
|
||||
(roamsession->bssParams.beaconInterval != *bcn_interval)) {
|
||||
/* if GO in MCC support diff beacon interval, return success */
|
||||
if (cfg_param->fAllowMCCGODiffBI == 0x01) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue