summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYingying Tang <yintang@qti.qualcomm.com>2015-12-23 17:11:08 +0800
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-12-31 15:17:58 +0530
commitd76fa45974610e5d71a0966c946d565fd033c2f7 (patch)
treecfd1fb918e5d18c6e734c3deb049f907333b36bd
parent9145ef36848f22a6d36629e37d711efc70ac0635 (diff)
qcacld-2.0: Add a new ini item to control the INDOOR channels support
After "qcacld-2.0: Mark indoor only channels as passive in wiphy", the indoor channel will unconditionally be set to IEEE80211_CHAN_PASSIVE_SCAN in driver. Add logic to report INDOOR channel as passive channel only when gindoor_channel_support is FALSE. Change-Id: Iab55a394a28ff452c06c739f3fbd47506eda85eb CRs-Fixed: 955272
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h10
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c8
-rw-r--r--CORE/VOSS/src/vos_nvitem.c14
3 files changed, 27 insertions, 5 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 4016a20a372d..55c343f4233d 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -3479,6 +3479,15 @@ enum dot11p_mode {
#define CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT (20)
#endif
+/*
+ * Support to start sap in indoor channel
+ * Customer can config this item to enable/disable sap in indoor channel
+ * Default: Disable
+ */
+#define CFG_INDOOR_CHANNEL_SUPPORT_NAME "gindoor_channel_support"
+#define CFG_INDOOR_CHANNEL_SUPPORT_MIN (0)
+#define CFG_INDOOR_CHANNEL_SUPPORT_MAX (1)
+#define CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT (0)
/*---------------------------------------------------------------------------
Type declarations
@@ -4186,6 +4195,7 @@ typedef struct
#endif
bool enable_go_cts2self_for_sta;
uint8_t ht_mpdu_density;
+ bool indoor_channel_support;
} hdd_config_t;
#ifdef WLAN_FEATURE_MBSSID
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 0426e4cda8d5..f8c11b4d7703 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -4267,6 +4267,14 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
+
+ REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
+ WLAN_PARAM_Integer,
+ hdd_config_t, indoor_channel_support,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
+ CFG_INDOOR_CHANNEL_SUPPORT_MIN,
+ CFG_INDOOR_CHANNEL_SUPPORT_MAX),
};
#ifdef WLAN_FEATURE_MBSSID
diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c
index 1be73c7bbf02..45df6dbfb614 100644
--- a/CORE/VOSS/src/vos_nvitem.c
+++ b/CORE/VOSS/src/vos_nvitem.c
@@ -1347,13 +1347,17 @@ static int create_linux_regulatory_entry(struct wiphy *wiphy,
}
/* nv cannot distinguish between DFS and passive channels */
- else if (wiphy->bands[i]->channels[j].flags &
- (IEEE80211_CHAN_RADAR | IEEE80211_CHAN_PASSIVE_SCAN |
- IEEE80211_CHAN_INDOOR_ONLY))
+ else if ((wiphy->bands[i]->channels[j].flags &
+ (IEEE80211_CHAN_RADAR | IEEE80211_CHAN_PASSIVE_SCAN)) ||
+ ((pHddCtx->cfg_ini->indoor_channel_support == FALSE) &&
+ (wiphy->bands[i]->channels[j].flags &
+ IEEE80211_CHAN_INDOOR_ONLY)))
{
- if (wiphy->bands[i]->channels[j].flags &
- IEEE80211_CHAN_INDOOR_ONLY)
+ if ((wiphy->bands[i]->channels[j].flags &
+ IEEE80211_CHAN_INDOOR_ONLY) &&
+ (FALSE ==
+ pHddCtx->cfg_ini->indoor_channel_support))
wiphy->bands[i]->channels[j].flags |=
IEEE80211_CHAN_PASSIVE_SCAN;