浏览代码

qcacld-3.0: Add ucfg api to get/set ps data inactivity timeout

Add and use ucfg api to get/set ps data inactivity timeout value.

Change-Id: I8b0931870507aac146a18b70103c323bea1ca6f3
CRs-Fixed: 2335980
Arif Hussain 6 年之前
父节点
当前提交
b3eb41d74c
共有 2 个文件被更改,包括 65 次插入0 次删除
  1. 23 0
      mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
  2. 42 0
      mlme/dispatcher/src/wlan_mlme_ucfg_api.c

+ 23 - 0
mlme/dispatcher/inc/wlan_mlme_ucfg_api.h

@@ -772,6 +772,29 @@ ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS
 ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc,
 					  uint8_t *val);
+
+/**
+ * ucfg_mlme_get_ps_data_inactivity_timeout() - Get data inactivity timeout
+ * @psoc: pointer to psoc object
+ * @inactivity_timeout: buffer to hold value
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
+					 uint32_t *inactivity_timeout);
+
+/**
+ * ucfg_mlme_set_ps_data_inactivity_timeout() - Set data inactivity timeout
+ * @psoc: pointer to psoc object
+ * @inactivity_timeout: value to be set
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_set_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
+					 uint32_t inactivity_timeout);
+
 /**
  * ucfg_mlme_set_sap_listen_interval() - Set the Sap listen interval
  * @psoc: pointer to psoc object

+ 42 - 0
mlme/dispatcher/src/wlan_mlme_ucfg_api.c

@@ -466,3 +466,45 @@ ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc,
 				     &mlme_obj->cfg.rates.current_mcs_set,
 				     len);
 }
+
+QDF_STATUS
+ucfg_mlme_get_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
+					 uint32_t *inactivity_timeout)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		*inactivity_timeout =
+			cfg_default(CFG_PS_DATA_INACTIVITY_TIMEOUT);
+		mlme_err("mlme obj null");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	*inactivity_timeout = mlme_obj->cfg.timeouts.ps_data_inactivity_timeout;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+ucfg_mlme_set_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
+					 uint32_t inactivity_timeout)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("mlme obj null");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	if (!cfg_in_range(CFG_PS_DATA_INACTIVITY_TIMEOUT, inactivity_timeout)) {
+		mlme_err("inactivity timeout set value is invalid %d",
+			 inactivity_timeout);
+		return QDF_STATUS_E_INVAL;
+	}
+
+	mlme_obj->cfg.timeouts.ps_data_inactivity_timeout = inactivity_timeout;
+
+	return QDF_STATUS_SUCCESS;
+}