qcacld-3.0: Set puncture cap
Set new puncture cap, clear old puncture cap. For SAP with fixed freq instead of ACS mode, need support puncture too, need use API sap_phymode_is_eht(sap_ctx->phyMode). Change-Id: I4bbbd742c3c49111d1725137739557bce18588f9 CRs-Fixed: 3518498
This commit is contained in:

committed by
Rahul Choudhary

parent
4b29565f47
commit
fade300d71
2
Kbuild
2
Kbuild
@@ -3283,7 +3283,7 @@ ifeq ($(findstring yes, $(found)), yes)
|
||||
ccflags-y += -DCFG80211_LINK_STA_PARAMS_PRESENT
|
||||
endif
|
||||
|
||||
found = $(shell if grep -qF "NL80211_EXT_FEATURE_PUNCT" $(srctree)/include/net/nl80211.h; then echo "yes" ;else echo "no" ;fi;)
|
||||
found = $(shell if grep -qF "NL80211_EXT_FEATURE_PUNCT" $(srctree)/include/uapi/linux/nl80211.h; then echo "yes" ;else echo "no" ;fi;)
|
||||
ifeq ($(findstring yes, $(found)), yes)
|
||||
ccflags-y += -DNL80211_EXT_FEATURE_PUNCT_SUPPORT
|
||||
endif
|
||||
|
@@ -19818,13 +19818,14 @@ wlan_hdd_update_max_connect_akm(struct wiphy *wiphy)
|
||||
|
||||
#ifdef NL80211_EXT_FEATURE_PUNCT_SUPPORT
|
||||
/**
|
||||
* NL80211_EXT_FEATURE_PUNCT() - set feature flag for puncture
|
||||
* wlan_hdd_set_ext_feature_punct() - set feature flag for puncture
|
||||
* @wiphy: wiphy
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void wlan_hdd_set_ext_feature_punct(struct wiphy *wiphy)
|
||||
{
|
||||
hdd_debug("enable puncture cap");
|
||||
wiphy_ext_feature_set(wiphy,
|
||||
NL80211_EXT_FEATURE_PUNCT);
|
||||
}
|
||||
|
@@ -171,24 +171,6 @@ hdd_update_wiphy_eht_caps_6ghz(struct hdd_context *hdd_ctx,
|
||||
iftype_ap->types_mask = BIT(NL80211_IFTYPE_AP);
|
||||
}
|
||||
|
||||
#ifdef CFG80211_RU_PUNCT_SUPPORT
|
||||
static void hdd_update_wiphy_punct_support(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
/*
|
||||
* ru_punct_supp_bw is the minimum BW of puncture.
|
||||
* If it is set to 80, then 160 and 320 puncture bandwidth will also be
|
||||
* supported in this case.
|
||||
* If it is set to 320, then only 320 puncture bandwidth is supported.
|
||||
*/
|
||||
hdd_ctx->wiphy->ru_punct_supp_bw = NL80211_RU_PUNCT_SUPP_BW_80;
|
||||
hdd_debug("ru_punct_supp_bw: %d", hdd_ctx->wiphy->ru_punct_supp_bw);
|
||||
}
|
||||
#else
|
||||
static void hdd_update_wiphy_punct_support(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void hdd_update_wiphy_eht_cap(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
tDot11fIEeht_cap eht_cap_cfg;
|
||||
@@ -215,9 +197,6 @@ void hdd_update_wiphy_eht_cap(struct hdd_context *hdd_ctx)
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
return;
|
||||
|
||||
if (eht_cap_cfg.present)
|
||||
hdd_update_wiphy_punct_support(hdd_ctx);
|
||||
|
||||
if (band_2g) {
|
||||
iftype_sta = hdd_ctx->iftype_data_2g;
|
||||
iftype_ap = hdd_ctx->iftype_data_2g + 1;
|
||||
|
@@ -104,6 +104,10 @@ static inline bool sap_acs_cfg_is_chwidth_320mhz(uint16_t width)
|
||||
static void sap_acs_set_puncture_bitmap(struct sap_context *sap_ctx,
|
||||
struct ch_params *ch_params)
|
||||
{
|
||||
sap_debug("ccfs0 %d ch_width %d, punct 0x%x",
|
||||
ch_params->center_freq_seg0,
|
||||
ch_params->ch_width,
|
||||
ch_params->reg_punc_bitmap);
|
||||
sap_ctx->acs_cfg->acs_puncture_bitmap = ch_params->reg_punc_bitmap;
|
||||
}
|
||||
#else
|
||||
@@ -134,7 +138,8 @@ void sap_config_acs_result(mac_handle_t mac_handle,
|
||||
enum phy_ch_width new_ch_width;
|
||||
|
||||
ch_params.ch_width = sap_ctx->acs_cfg->ch_width;
|
||||
sap_acs_set_puncture_support(sap_ctx, &ch_params);
|
||||
if (sap_phymode_is_eht(sap_ctx->phyMode))
|
||||
wlan_reg_set_create_punc_bitmap(&ch_params, true);
|
||||
|
||||
new_ch_width =
|
||||
wlan_sap_get_concurrent_bw(mac_ctx->pdev, mac_ctx->psoc,
|
||||
|
Reference in New Issue
Block a user