qcacld-3.0: Change channel to Frequency for acs_cfg fields

Change vht_seg0_center_ch and vht_seg1_center_ch in acs_cfg
struct to vht_seg0_center_ch_freq, vht_seg1_center_ch_freq
respectively.

Change-Id: Ie3378376e6f31c239157c8eaaf3ceb22d2e35073
CRs-Fixed: 2564065
This commit is contained in:
Liangwei Dong 2019-11-08 17:59:09 +08:00 committed by nshrivas
parent 50d12dc273
commit 0e18c47d0c
5 changed files with 76 additions and 53 deletions

View File

@ -2957,9 +2957,17 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
wlan_reg_freq_to_chan(hdd_ctx->pdev,
sap_config->acs_cfg.ht_sec_ch_freq);
sap_config->ch_params.center_freq_seg0 =
sap_config->acs_cfg.vht_seg0_center_ch;
wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_config->acs_cfg.vht_seg0_center_ch_freq);
sap_config->ch_params.center_freq_seg1 =
sap_config->acs_cfg.vht_seg1_center_ch;
wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_config->acs_cfg.vht_seg1_center_ch_freq);
sap_config->ch_params.mhz_freq_seg0 =
sap_config->acs_cfg.vht_seg0_center_ch_freq;
sap_config->ch_params.mhz_freq_seg1 =
sap_config->acs_cfg.vht_seg1_center_ch_freq;
/*notify hostapd about channel override */
wlan_hdd_cfg80211_acs_ch_select_evt(adapter);
ret = 0;
@ -3157,6 +3165,7 @@ void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter)
uint16_t ch_width;
uint8_t pri_channel;
uint8_t ht_sec_channel;
uint8_t vht_seg0_center_ch, vht_seg1_center_ch;
vendor_event = cfg80211_vendor_event_alloc(hdd_ctx->wiphy,
&(adapter->wdev),
@ -3192,19 +3201,23 @@ void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter)
kfree_skb(vendor_event);
return;
}
vht_seg0_center_ch = wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_cfg->acs_cfg.vht_seg0_center_ch_freq);
ret_val = nla_put_u8(vendor_event,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL,
sap_cfg->acs_cfg.vht_seg0_center_ch);
vht_seg0_center_ch);
if (ret_val) {
hdd_err("QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL put fail");
kfree_skb(vendor_event);
return;
}
vht_seg1_center_ch = wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_cfg->acs_cfg.vht_seg1_center_ch_freq);
ret_val = nla_put_u8(vendor_event,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL,
sap_cfg->acs_cfg.vht_seg1_center_ch);
vht_seg1_center_ch);
if (ret_val) {
hdd_err("QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL put fail");
kfree_skb(vendor_event);
@ -3246,8 +3259,8 @@ void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter)
hdd_debug("ACS result for %s: PRI_CH_FREQ: %d SEC_CH_FREQ: %d VHT_SEG0: %d VHT_SEG1: %d ACS_BW: %d",
adapter->dev->name, sap_cfg->acs_cfg.pri_ch_freq,
sap_cfg->acs_cfg.ht_sec_ch_freq,
sap_cfg->acs_cfg.vht_seg0_center_ch,
sap_cfg->acs_cfg.vht_seg1_center_ch, ch_width);
sap_cfg->acs_cfg.vht_seg0_center_ch_freq,
sap_cfg->acs_cfg.vht_seg1_center_ch_freq, ch_width);
cfg80211_vendor_event(vendor_event, GFP_KERNEL);
/* ***Note*** As already mentioned Completion variable usage is not
@ -10964,10 +10977,13 @@ static void hdd_update_acs_sap_config(struct hdd_context *hdd_ctx,
sap_config->acs_cfg.pri_ch_freq =
wlan_reg_chan_to_freq(hdd_ctx->pdev, channel_list->pri_ch);
sap_config->acs_cfg.ch_width = channel_list->chan_width;
sap_config->acs_cfg.vht_seg0_center_ch =
channel_list->vht_seg0_center_ch;
sap_config->acs_cfg.vht_seg1_center_ch =
channel_list->vht_seg1_center_ch;
sap_config->acs_cfg.vht_seg0_center_ch_freq =
wlan_reg_chan_to_freq(
hdd_ctx->pdev, channel_list->vht_seg0_center_ch);
sap_config->acs_cfg.vht_seg1_center_ch_freq =
wlan_reg_chan_to_freq(
hdd_ctx->pdev, channel_list->vht_seg1_center_ch);
sap_config->acs_cfg.ht_sec_ch_freq =
wlan_reg_chan_to_freq(hdd_ctx->pdev, channel_list->ht_sec_ch);
}

View File

@ -2527,24 +2527,28 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
sap_event->sapevt.sap_ch_selected.pri_ch_freq;
ap_ctx->sap_config.acs_cfg.ht_sec_ch_freq =
sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq;
ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch =
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch =
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch_freq =
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq;
ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch_freq =
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq;
ap_ctx->sap_config.acs_cfg.ch_width =
sap_event->sapevt.sap_ch_selected.ch_width;
sap_ch_param.ch_width =
sap_event->sapevt.sap_ch_selected.ch_width;
sap_ch_param.center_freq_seg0 =
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq);
sap_ch_param.center_freq_seg1 =
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
wlan_reg_set_channel_params(hdd_ctx->pdev,
wlan_reg_freq_to_chan(hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.pri_ch_freq),
wlan_reg_freq_to_chan(hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq),
wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq);
wlan_reg_set_channel_params_for_freq(
hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.pri_ch_freq,
sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq,
&sap_ch_param);
cdp_hl_fc_set_td_limit(cds_get_context(QDF_MODULE_ID_SOC),
@ -2577,9 +2581,13 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
chan_change.chan_params.sec_ch_offset =
sap_ch_param.sec_ch_offset;
chan_change.chan_params.center_freq_seg0 =
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq);
chan_change.chan_params.center_freq_seg1 =
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
wlan_reg_freq_to_chan(
hdd_ctx->pdev,
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq);
return hdd_chan_change_notify(adapter, dev,
chan_change, legacy_phymode);
@ -2595,10 +2603,10 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event,
sap_event->sapevt.sap_ch_selected.pri_ch_freq;
ap_ctx->sap_config.acs_cfg.ht_sec_ch_freq =
sap_event->sapevt.sap_ch_selected.ht_sec_ch_freq;
ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch =
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch;
ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch =
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch;
ap_ctx->sap_config.acs_cfg.vht_seg0_center_ch_freq =
sap_event->sapevt.sap_ch_selected.vht_seg0_center_ch_freq;
ap_ctx->sap_config.acs_cfg.vht_seg1_center_ch_freq =
sap_event->sapevt.sap_ch_selected.vht_seg1_center_ch_freq;
ap_ctx->sap_config.acs_cfg.ch_width =
sap_event->sapevt.sap_ch_selected.ch_width;
wlan_hdd_cfg80211_acs_ch_select_evt(adapter);

View File

@ -350,8 +350,8 @@ typedef struct sap_MaxAssocExceededEvent_s {
struct sap_ch_selected_s {
uint32_t pri_ch_freq;
uint32_t ht_sec_ch_freq;
uint16_t vht_seg0_center_ch;
uint16_t vht_seg1_center_ch;
uint16_t vht_seg0_center_ch_freq;
uint16_t vht_seg1_center_ch_freq;
uint16_t ch_width;
};
@ -452,8 +452,8 @@ struct sap_acs_cfg {
/* ACS Algo Output */
uint32_t pri_ch_freq;
uint32_t ht_sec_ch_freq;
uint8_t vht_seg0_center_ch;
uint8_t vht_seg1_center_ch;
uint32_t vht_seg0_center_ch_freq;
uint32_t vht_seg1_center_ch_freq;
uint32_t band;
};

View File

@ -97,27 +97,26 @@ void sap_config_acs_result(mac_handle_t mac_handle,
struct sap_context *sap_ctx,
uint32_t sec_ch_freq)
{
uint32_t channel = wlan_freq_to_chan(sap_ctx->acs_cfg->pri_ch_freq);
struct ch_params ch_params = {0};
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
uint8_t sec_ch;
sec_ch = wlan_freq_to_chan(sec_ch_freq);
ch_params.ch_width = sap_ctx->acs_cfg->ch_width;
wlan_reg_set_channel_params(mac_ctx->pdev, channel, sec_ch,
&ch_params);
wlan_reg_set_channel_params_for_freq(
mac_ctx->pdev, sap_ctx->acs_cfg->pri_ch_freq,
sec_ch_freq, &ch_params);
sap_ctx->acs_cfg->ch_width = ch_params.ch_width;
if (sap_ctx->acs_cfg->ch_width > CH_WIDTH_40MHZ)
sap_ctx->acs_cfg->vht_seg0_center_ch =
ch_params.center_freq_seg0;
if (sap_ctx->acs_cfg->ch_width > CH_WIDTH_40MHZ ||
WLAN_REG_IS_6GHZ_CHAN_FREQ(sap_ctx->acs_cfg->pri_ch_freq))
sap_ctx->acs_cfg->vht_seg0_center_ch_freq =
ch_params.mhz_freq_seg0;
else
sap_ctx->acs_cfg->vht_seg0_center_ch = 0;
sap_ctx->acs_cfg->vht_seg0_center_ch_freq = 0;
if (sap_ctx->acs_cfg->ch_width == CH_WIDTH_80P80MHZ)
sap_ctx->acs_cfg->vht_seg1_center_ch =
ch_params.center_freq_seg1;
sap_ctx->acs_cfg->vht_seg1_center_ch_freq =
ch_params.mhz_freq_seg1;
else
sap_ctx->acs_cfg->vht_seg1_center_ch = 0;
sap_ctx->acs_cfg->vht_seg1_center_ch_freq = 0;
if (ch_params.sec_ch_offset == PHY_DOUBLE_CHANNEL_HIGH_PRIMARY)
sap_ctx->acs_cfg->ht_sec_ch_freq =

View File

@ -1505,10 +1505,10 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx,
acs_selected->ht_sec_ch_freq =
sap_ctx->acs_cfg->ht_sec_ch_freq;
acs_selected->ch_width = sap_ctx->acs_cfg->ch_width;
acs_selected->vht_seg0_center_ch =
sap_ctx->acs_cfg->vht_seg0_center_ch;
acs_selected->vht_seg1_center_ch =
sap_ctx->acs_cfg->vht_seg1_center_ch;
acs_selected->vht_seg0_center_ch_freq =
sap_ctx->acs_cfg->vht_seg0_center_ch_freq;
acs_selected->vht_seg1_center_ch_freq =
sap_ctx->acs_cfg->vht_seg1_center_ch_freq;
} else if (eSAP_STATUS_FAILURE == (eSapStatus)context) {
acs_selected->pri_ch_freq = 0;
}
@ -1750,10 +1750,10 @@ QDF_STATUS sap_signal_hdd_event(struct sap_context *sap_ctx,
acs_selected->ht_sec_ch_freq = sap_ctx->sec_ch_freq;
acs_selected->ch_width =
sap_ctx->csr_roamProfile.ch_params.ch_width;
acs_selected->vht_seg0_center_ch =
sap_ctx->csr_roamProfile.ch_params.center_freq_seg0;
acs_selected->vht_seg1_center_ch =
sap_ctx->csr_roamProfile.ch_params.center_freq_seg1;
acs_selected->vht_seg0_center_ch_freq =
sap_ctx->csr_roamProfile.ch_params.mhz_freq_seg0;
acs_selected->vht_seg1_center_ch_freq =
sap_ctx->csr_roamProfile.ch_params.mhz_freq_seg1;
break;
case eSAP_ECSA_CHANGE_CHAN_IND: