qcacmn: Add WMI reference in PSOC and PSoc reference in WMI
Add WMI reference in PSOC and PSoc reference in WMI.
Change-Id: I6841bec1748447c6c98a81417365cf6e8d228b54
CRs-Fixed: 2002025
diff --git a/wmi_unified.c b/wmi_unified.c
index c4b6a03..3711dd5 100644
--- a/wmi_unified.c
+++ b/wmi_unified.c
@@ -2223,12 +2223,14 @@
* @target_type: TLV or not-TLV based target
* @use_cookie: cookie based allocation enabled/disabled
* @ops: umac rx callbacks
+ * @psoc: objmgr psoc
*
* @Return: wmi handle.
*/
void *wmi_unified_attach(void *scn_handle,
osdev_t osdev, enum wmi_target_type target_type,
- bool use_cookie, struct wmi_rx_ops *rx_ops)
+ bool use_cookie, struct wmi_rx_ops *rx_ops,
+ struct wlan_objmgr_psoc *psoc)
{
struct wmi_unified *wmi_handle;
@@ -2273,6 +2275,8 @@
wmi_handle->use_cookie = use_cookie;
wmi_handle->osdev = osdev;
wmi_handle->wmi_stopinprogress = 0;
+ /* Increase the ref count once refcount infra is present */
+ wmi_handle->wmi_psoc = psoc;
qdf_spinlock_create(&wmi_handle->ctx_lock);
return wmi_handle;
@@ -2305,6 +2309,8 @@
qdf_spinlock_destroy(&wmi_handle->eventq_lock);
qdf_spinlock_destroy(&wmi_handle->ctx_lock);
+ /* Decrease the ref count once refcount infra is present */
+ wmi_handle->wmi_psoc = NULL;
OS_FREE(wmi_handle);
wmi_handle = NULL;
}