qcacmn: Move communication with firmware to vdev_ready in PMO
Objmgr vdev_create event does not guarantee vdev creation in firmware. Move any PMO logic that would normally go in the vdev_create event, but needs to communicate with firmware, to a new vdev_ready event handler. Change-Id: Ifbc2aed26a511733b31c816b9e6c4359d39910e6 CRs-Fixed: 2020696
This commit is contained in:

committed by
Sandeep Puligilla

parent
de25c8804f
commit
f37bed7d2e
@@ -65,7 +65,7 @@ QDF_STATUS pmo_psoc_object_created_notification(
|
||||
*
|
||||
* Return QDF_STATUS status in case of success else return error
|
||||
*/
|
||||
QDF_STATUS pmo_psoc_object_destroyed_notification(
|
||||
QDF_STATUS pmo_psoc_object_destroyed_notification(
|
||||
struct wlan_objmgr_psoc *psoc, void *arg);
|
||||
|
||||
/**
|
||||
@@ -80,6 +80,18 @@ QDF_STATUS pmo_psoc_object_destroyed_notification(
|
||||
QDF_STATUS pmo_vdev_object_created_notification(
|
||||
struct wlan_objmgr_vdev *vdev, void *arg);
|
||||
|
||||
/**
|
||||
* pmo_vdev_ready() - handles vdev ready in firmware event
|
||||
* @vdev: vdev which is ready in firmware
|
||||
*
|
||||
* Objmgr vdev_create event does not guarantee vdev creation in firmware.
|
||||
* Any logic that would normally go in the vdev_create event, but needs to
|
||||
* communicate with firmware, needs to go here instead.
|
||||
*
|
||||
* Return QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* pmo_vdev_object_destroyed_notification(): pmo vdev delete handler
|
||||
* @vdev: vdev which is going to delete by objmgr
|
||||
|
@@ -28,6 +28,7 @@
|
||||
#include "wlan_pmo_mc_addr_filtering_public_struct.h"
|
||||
#include "wlan_pmo_wow_public_struct.h"
|
||||
#include "wlan_pmo_common_public_struct.h"
|
||||
#include "wlan_pmo_obj_mgmt_api.h"
|
||||
|
||||
/**
|
||||
* pmo_ucfg_is_ap_mode_supports_arp_ns() - Check ap mode support arp&ns offload
|
||||
|
@@ -270,17 +270,32 @@ QDF_STATUS pmo_vdev_object_created_notification(
|
||||
vdev_ctx->pmo_psoc_ctx = psoc_ctx;
|
||||
qdf_atomic_init(&vdev_ctx->gtk_err_enable);
|
||||
|
||||
/* Register static configuration with firmware */
|
||||
pmo_register_wow_wakeup_events(vdev);
|
||||
pmo_register_action_frame_patterns(vdev);
|
||||
/* Register default wow patterns with firmware */
|
||||
pmo_register_wow_default_patterns(vdev);
|
||||
out:
|
||||
PMO_EXIT();
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_vdev_ready(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
PMO_ENTER();
|
||||
|
||||
/* Register static configuration with firmware */
|
||||
pmo_register_wow_wakeup_events(vdev);
|
||||
pmo_register_action_frame_patterns(vdev);
|
||||
|
||||
/* Register default wow patterns with firmware */
|
||||
pmo_register_wow_default_patterns(vdev);
|
||||
|
||||
PMO_EXIT();
|
||||
|
||||
/*
|
||||
* The above APIs should return a status but don't.
|
||||
* Just return success for now.
|
||||
*/
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS pmo_vdev_object_destroyed_notification(
|
||||
struct wlan_objmgr_vdev *vdev, void *arg)
|
||||
{
|
||||
|
Reference in New Issue
Block a user