|
@@ -241,6 +241,181 @@ ucfg_mlme_set_pmkid_modes(struct wlan_objmgr_psoc *psoc,
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_get_twt_requestor(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool *val)
|
|
|
+{
|
|
|
+ struct wlan_mlme_psoc_obj *mlme_obj;
|
|
|
+
|
|
|
+ mlme_obj = mlme_get_psoc_obj(psoc);
|
|
|
+ if (!mlme_obj) {
|
|
|
+ *val = cfg_default(CFG_TWT_REQUESTOR);
|
|
|
+ mlme_err("mlme obj null");
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ *val = mlme_obj->cfg.twt_cfg.is_twt_requestor_enabled;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_set_twt_requestor(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool val)
|
|
|
+{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ mlme_obj->cfg.twt_cfg.is_twt_requestor_enabled = val;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_get_twt_responder(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool *val)
|
|
|
+{
|
|
|
+ struct wlan_mlme_psoc_obj *mlme_obj;
|
|
|
+
|
|
|
+ mlme_obj = mlme_get_psoc_obj(psoc);
|
|
|
+ if (!mlme_obj) {
|
|
|
+ *val = cfg_default(CFG_TWT_RESPONDER);
|
|
|
+ mlme_err("mlme obj null");
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ *val = mlme_obj->cfg.twt_cfg.is_twt_responder_enabled;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_set_twt_responder(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool val)
|
|
|
+{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ mlme_obj->cfg.twt_cfg.is_twt_responder_enabled = val;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_get_bcast_twt(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool *val)
|
|
|
+{
|
|
|
+ struct wlan_mlme_psoc_obj *mlme_obj;
|
|
|
+
|
|
|
+ mlme_obj = mlme_get_psoc_obj(psoc);
|
|
|
+ if (!mlme_obj) {
|
|
|
+ *val = cfg_default(CFG_BCAST_TWT);
|
|
|
+ mlme_err("mlme obj null");
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ *val = mlme_obj->cfg.twt_cfg.is_twt_bcast_enabled;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_set_bcast_twt(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool val)
|
|
|
+{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ mlme_obj->cfg.twt_cfg.is_twt_bcast_enabled = val;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_get_twt_congestion_timeout(struct wlan_objmgr_psoc *psoc,
|
|
|
+ uint32_t *val)
|
|
|
+{
|
|
|
+ struct wlan_mlme_psoc_obj *mlme_obj;
|
|
|
+
|
|
|
+ mlme_obj = mlme_get_psoc_obj(psoc);
|
|
|
+ if (!mlme_obj) {
|
|
|
+ *val = cfg_default(CFG_TWT_CONGESTION_TIMEOUT);
|
|
|
+ mlme_err("mlme obj null");
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ *val = mlme_obj->cfg.twt_cfg.twt_congestion_timeout;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_set_twt_congestion_timeout(struct wlan_objmgr_psoc *psoc,
|
|
|
+ uint32_t val)
|
|
|
+{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ mlme_obj->cfg.twt_cfg.twt_congestion_timeout = val;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_get_enable_twt(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool *val)
|
|
|
+{
|
|
|
+ struct wlan_mlme_psoc_obj *mlme_obj;
|
|
|
+
|
|
|
+ mlme_obj = mlme_get_psoc_obj(psoc);
|
|
|
+ if (!mlme_obj) {
|
|
|
+ *val = cfg_default(CFG_ENABLE_TWT);
|
|
|
+ mlme_err("mlme obj null");
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ *val = mlme_obj->cfg.twt_cfg.is_twt_enabled;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+ucfg_mlme_set_enable_twt(struct wlan_objmgr_psoc *psoc,
|
|
|
+ bool val)
|
|
|
+{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ mlme_obj->cfg.twt_cfg.is_twt_enabled = val;
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
QDF_STATUS
|
|
|
ucfg_mlme_get_dot11p_mode(struct wlan_objmgr_psoc *psoc,
|
|
|
enum dot11p_mode *out_mode)
|