|
@@ -769,7 +769,6 @@ QDF_STATUS pmo_register_get_cfg_int_callback(struct wlan_objmgr_psoc *psoc,
|
|
|
pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
|
|
psoc_ctx->get_cfg_int = handler;
|
|
|
}
|
|
|
-
|
|
|
pmo_psoc_put_ref(psoc);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
@@ -794,7 +793,117 @@ QDF_STATUS pmo_unregister_get_cfg_int_callback(struct wlan_objmgr_psoc *psoc)
|
|
|
pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
|
|
psoc_ctx->get_cfg_int = NULL;
|
|
|
}
|
|
|
+ pmo_psoc_put_ref(psoc);
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS pmo_register_get_dtim_period_callback(struct wlan_objmgr_psoc *psoc,
|
|
|
+ pmo_get_dtim_period handler)
|
|
|
+{
|
|
|
+ struct pmo_psoc_priv_obj *psoc_ctx;
|
|
|
+ QDF_STATUS status;
|
|
|
+
|
|
|
+ if (!psoc) {
|
|
|
+ pmo_err("psoc is null");
|
|
|
+ return QDF_STATUS_E_NULL_VALUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!handler) {
|
|
|
+ pmo_err("pmo_get_dtim_period is null");
|
|
|
+ return QDF_STATUS_E_NULL_VALUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ status = pmo_psoc_get_ref(psoc);
|
|
|
+ if (status != QDF_STATUS_SUCCESS) {
|
|
|
+ pmo_err("pmo cannot get the reference out of psoc");
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
|
|
+ psoc_ctx->get_dtim_period = handler;
|
|
|
+ }
|
|
|
+ pmo_psoc_put_ref(psoc);
|
|
|
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+pmo_unregister_get_dtim_period_callback(struct wlan_objmgr_psoc *psoc)
|
|
|
+{
|
|
|
+ struct pmo_psoc_priv_obj *psoc_ctx;
|
|
|
+ QDF_STATUS status;
|
|
|
+
|
|
|
+ if (!psoc) {
|
|
|
+ pmo_err("psoc is null");
|
|
|
+ return QDF_STATUS_E_NULL_VALUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ status = pmo_psoc_get_ref(psoc);
|
|
|
+ if (status != QDF_STATUS_SUCCESS) {
|
|
|
+ pmo_err("pmo cannot get the reference out of psoc");
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
|
|
+ psoc_ctx->get_dtim_period = NULL;
|
|
|
+ }
|
|
|
+ pmo_psoc_put_ref(psoc);
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+pmo_register_get_beacon_interval_callback(struct wlan_objmgr_psoc *psoc,
|
|
|
+ pmo_get_beacon_interval handler)
|
|
|
+{
|
|
|
+ struct pmo_psoc_priv_obj *psoc_ctx;
|
|
|
+ QDF_STATUS status;
|
|
|
+
|
|
|
+ if (!psoc) {
|
|
|
+ pmo_err("psoc is null");
|
|
|
+ return QDF_STATUS_E_NULL_VALUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!handler) {
|
|
|
+ pmo_err("pmo_get_beacon_interval is null");
|
|
|
+ return QDF_STATUS_E_NULL_VALUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ status = pmo_psoc_get_ref(psoc);
|
|
|
+ if (status != QDF_STATUS_SUCCESS) {
|
|
|
+ pmo_err("pmo cannot get the reference out of psoc");
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
|
|
+ psoc_ctx->get_beacon_interval = handler;
|
|
|
+ }
|
|
|
+ pmo_psoc_put_ref(psoc);
|
|
|
+
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+QDF_STATUS
|
|
|
+pmo_unregister_get_beacon_interval_callback(struct wlan_objmgr_psoc *psoc)
|
|
|
+{
|
|
|
+ struct pmo_psoc_priv_obj *psoc_ctx;
|
|
|
+ QDF_STATUS status;
|
|
|
+
|
|
|
+ if (!psoc) {
|
|
|
+ pmo_err("psoc is null");
|
|
|
+ return QDF_STATUS_E_NULL_VALUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ status = pmo_psoc_get_ref(psoc);
|
|
|
+ if (status != QDF_STATUS_SUCCESS) {
|
|
|
+ pmo_err("pmo cannot get the reference out of psoc");
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
|
|
+ psoc_ctx->get_beacon_interval = NULL;
|
|
|
+ }
|
|
|
pmo_psoc_put_ref(psoc);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|