wlan: set wificonfiguration(wfc) parameters to firmware
Program the wifi configurations in the firmware using the vendor
commands
We can set the following three parameters using wfc:
* Modulated DTIM
* Average Stats Factor
* Guard Time
* Existing infrastucture is used for setting the modulated DTIM,
We check if we are presently in BMPS then comeout of BMPS,
set the requested modulated DTIM and enter BMPS again. If we are
not in BMPS state, the requested value shall be effective when we
enter the BMPS state again.
* For Guard Time & Average stats factor new WDI command is sent to
firmware(WDI_WIFI_CONFIG_REQ) and the status of the response is
checked in WDI response callback and the message shall be dropped
in WDA.
Change-Id: I9ebd1daacdb06e88b064936efe86af78c7fbdac4
CRs-Fixed: 924853
diff --git a/CORE/HDD/inc/wlan_hdd_cfg80211.h b/CORE/HDD/inc/wlan_hdd_cfg80211.h
index 6953a6c..2fe0f9d 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg80211.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg80211.h
@@ -175,6 +175,10 @@
QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SSID_HOTLIST = 66,
QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_FOUND = 67,
QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_LOST = 68,
+
+ /* Wi-Fi Configuration subcommands */
+ QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION = 74,
+ QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION = 75,
QCA_NL80211_VENDOR_SUBCMD_GET_RING_DATA = 77,
QCA_NL80211_VENDOR_SUBCMD_MONITOR_RSSI = 80,
@@ -1077,6 +1081,26 @@
QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_AFTER_LAST - 1,
};
+/**
+ * enum qca_wlan_vendor_config: wifi config attr
+ *
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_INVALID: invalid config
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_MODULATED_DTIM: dynamic dtim
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR: stats avg. factor
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME: guard time
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_LAST: last config
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_MAX: max config
+ */
+enum qca_wlan_vendor_config {
+ QCA_WLAN_VENDOR_ATTR_CONFIG_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_MODULATED_DTIM,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME,
+ /* keep last */
+ QCA_WLAN_VENDOR_ATTR_CONFIG_LAST,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_MAX =
+ QCA_WLAN_VENDOR_ATTR_CONFIG_LAST - 1
+};
/* Feature defines */
#define WIFI_FEATURE_INFRA 0x0001 /* Basic infrastructure mode */
@@ -1101,6 +1125,10 @@
Concurrency */
#define WIFI_FEATURE_LINK_LAYER_STATS 0x10000 /* Link layer stats */
+/* WIFI CONFIG Parameter defines */
+#define WIFI_CONFIG_SET_AVG_STATS_FACTOR 0x0001 /* Average stats factor */
+#define WIFI_CONFIG_SET_GUARD_TIME 0x0002 /* Guard Time */
+
/* Add more features here */
enum qca_wlan_vendor_attr_set_no_dfs_flag
{