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:
Jianmin Zhu
2023-06-02 14:59:24 +08:00
committed by Rahul Choudhary
parent 4b29565f47
commit fade300d71
4 changed files with 9 additions and 24 deletions

2
Kbuild
View File

@@ -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

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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,