qcacld-3.0: Add support for getting cfg integer from PMO
Add support for getting cfg integer from PMO. Register callbacks during pe_open/close so that PMO can query CFG int values for calculating parameters like listen interval etc. Change-Id: I52d165586576e547e175ba276e6b7225db5b27e0 CRs-Fixed: 2252661
这个提交包含在:
@@ -606,8 +606,7 @@ QDF_STATUS pmo_register_pause_bitmap_notifier(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_unregister_pause_bitmap_notifier(struct wlan_objmgr_psoc *psoc,
|
||||
pmo_notify_pause_bitmap handler)
|
||||
QDF_STATUS pmo_unregister_pause_bitmap_notifier(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct pmo_psoc_priv_obj *psoc_ctx;
|
||||
QDF_STATUS status;
|
||||
@@ -617,11 +616,6 @@ QDF_STATUS pmo_unregister_pause_bitmap_notifier(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
if (!handler) {
|
||||
pmo_err("pmo_notify_vdev_pause_bitmap 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");
|
||||
@@ -629,8 +623,7 @@ QDF_STATUS pmo_unregister_pause_bitmap_notifier(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
|
||||
pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
||||
if (psoc_ctx->pause_bitmap_notifier == handler)
|
||||
psoc_ctx->pause_bitmap_notifier = NULL;
|
||||
psoc_ctx->pause_bitmap_notifier = NULL;
|
||||
}
|
||||
|
||||
pmo_psoc_put_ref(psoc);
|
||||
@@ -669,8 +662,7 @@ QDF_STATUS pmo_register_get_pause_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_unregister_get_pause_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
pmo_get_pause_bitmap handler)
|
||||
QDF_STATUS pmo_unregister_get_pause_bitmap(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct pmo_psoc_priv_obj *psoc_ctx;
|
||||
QDF_STATUS status;
|
||||
@@ -680,11 +672,6 @@ QDF_STATUS pmo_unregister_get_pause_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
if (!handler) {
|
||||
pmo_err("pmo_get_pause_bitmap 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");
|
||||
@@ -692,8 +679,7 @@ QDF_STATUS pmo_unregister_get_pause_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
|
||||
pmo_psoc_with_ctx(psoc, psoc_ctx) {
|
||||
if (psoc_ctx->get_pause_bitmap == handler)
|
||||
psoc_ctx->get_pause_bitmap = NULL;
|
||||
psoc_ctx->get_pause_bitmap = NULL;
|
||||
}
|
||||
|
||||
pmo_psoc_put_ref(psoc);
|
||||
@@ -732,9 +718,8 @@ QDF_STATUS pmo_register_is_device_in_low_pwr_mode(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_unregister_is_device_in_low_pwr_mode(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
pmo_is_device_in_low_pwr_mode handler)
|
||||
QDF_STATUS
|
||||
pmo_unregister_is_device_in_low_pwr_mode(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct pmo_psoc_priv_obj *psoc_ctx;
|
||||
QDF_STATUS status;
|
||||
@@ -744,11 +729,6 @@ QDF_STATUS pmo_unregister_is_device_in_low_pwr_mode(
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
if (!handler) {
|
||||
pmo_err("pmo_get_pause_bitmap 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");
|
||||
@@ -763,3 +743,59 @@ QDF_STATUS pmo_unregister_is_device_in_low_pwr_mode(
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_register_get_cfg_int_callback(struct wlan_objmgr_psoc *psoc,
|
||||
pmo_get_cfg_int 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_cfg_int 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_cfg_int = handler;
|
||||
}
|
||||
|
||||
pmo_psoc_put_ref(psoc);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_unregister_get_cfg_int_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_cfg_int = NULL;
|
||||
}
|
||||
|
||||
pmo_psoc_put_ref(psoc);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户