summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaidiReddy Yenuga <saidir@codeaurora.org>2017-03-24 15:15:03 +0530
committersnandini <snandini@codeaurora.org>2017-10-09 04:39:56 -0700
commit9c764570f03545d8863da3629060efd244402ff1 (patch)
treec25d735507f82fbbf1b87a0d526e41f302526d00
parentc99a1cf0f00c6cf852fb7fe1abda903e24bb5242 (diff)
qcacld-3.0: Add support for configuring modulated DTIM dynamically
qcacld-2.0 to qcacld-3.0 Propagation. Wifi OFF/ON is needed to update the gEnableModuleDTIM ini param. Add private ioctl to configure modulated DTIM at runtime. CRs-Fixed: 2002662 Change-Id: I28be432da775a9aa026cd702c63dee5666260d33
-rw-r--r--core/hdd/src/wlan_hdd_wext.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c
index b82aef4b34c3..66b233520a93 100644
--- a/core/hdd/src/wlan_hdd_wext.c
+++ b/core/hdd/src/wlan_hdd_wext.c
@@ -1046,6 +1046,28 @@ static const struct ccp_freq_chan_map freq_chan_map[] = {
#define WE_SET_WOW_DATA_INACTIVITY_TO 90
+/*
+ * <ioctl>
+ * setModDTIM - Change Modulated DTIM
+ *
+ * @INPUT: set_value.
+ *
+ * @OUTPUT: None
+ *
+ * This IOCTL is used to change modulated DTIM
+ * value without WIFI OFF/ON.
+ *
+ * @E.g: iwpriv wlan0 setModDTIM <value>
+ * iwpriv wlan0 setModDTIM 2
+ *
+ * Supported Feature: N/A
+ *
+ * Usage: External
+ *
+ * </ioctl>
+ */
+#define WE_SET_MODULATED_DTIM 91
+
/* Private ioctls and their sub-ioctls */
#define WLAN_PRIV_SET_NONE_GET_INT (SIOCIWFIRSTPRIV + 1)
#define WE_GET_11D_STATE 1
@@ -8865,6 +8887,18 @@ static int __iw_setint_getnone(struct net_device *dev,
cds_set_cur_conc_system_pref(set_value);
break;
}
+ case WE_SET_MODULATED_DTIM:
+ {
+ if ((set_value < CFG_ENABLE_MODULATED_DTIM_MIN) ||
+ (set_value > CFG_ENABLE_MODULATED_DTIM_MAX)) {
+ hdd_err("Invalid gEnableModuleDTIM value %d",
+ set_value);
+ return -EINVAL;
+ } else {
+ hdd_ctx->config->enableModulatedDTIM = set_value;
+ }
+ break;
+ }
default:
{
hdd_err("Invalid sub command %d",
@@ -13230,6 +13264,10 @@ static const struct iw_priv_args we_private_args[] = {
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
0, "setConcSysPref" },
+ {WE_SET_MODULATED_DTIM,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0, "setModDTIM" },
+
{WLAN_PRIV_SET_NONE_GET_INT,
0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,