ソースを参照

qcacmn: Add APIs to register event handlers in mgmt rx reo

1. Add target if files for mgmt rx reo module.
2. Add APIs to register/unregister WMI events related to
   management Rx reorder module.

CRs-Fixed: 2927734
Change-Id: Icf3537cfec03f26305ee6d1e08b82e316febf2ad
Edayilliam Jayadev 4 年 前
コミット
ac790cc9a2

+ 71 - 0
target_if/mgmt_txrx/inc/target_if_mgmt_txrx_rx_reo.h

@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ *  DOC: target_if_mgmt_txrx_rx_reo.h
+ *  This file contains declarations of management rx re-ordering related APIs.
+ */
+
+#ifndef _TARGET_IF_MGMT_TXRX_RX_REO_H_
+#define _TARGET_IF_MGMT_TXRX_RX_REO_H_
+#ifdef WLAN_MGMT_RX_REO_SUPPORT
+/**
+ * target_if_mgmt_rx_reo_register_event_handlers() - Register management
+ * rx-reordering related event handlers.
+ * @psoc: psoc object
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+target_if_mgmt_rx_reo_register_event_handlers(struct wlan_objmgr_psoc *psoc);
+
+/**
+ * target_if_mgmt_rx_reo_unregister_event_handlers() - Unregister management
+ * rx-reordering related event handlers.
+ * @psoc: psoc object
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+target_if_mgmt_rx_reo_unregister_event_handlers(struct wlan_objmgr_psoc *psoc);
+#else
+/**
+ * target_if_mgmt_rx_reo_register_event_handlers() - Register management
+ * rx-reordering related event handlers.
+ * @psoc: psoc object
+ *
+ * Return: QDF_STATUS
+ */
+static inline QDF_STATUS
+target_if_mgmt_rx_reo_register_event_handlers(struct wlan_objmgr_psoc *psoc)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * target_if_mgmt_rx_reo_unregister_event_handlers() - Unregister management
+ * rx-reordering related event handlers.
+ * @psoc: psoc object
+ *
+ * Return: QDF_STATUS
+ */
+static inline QDF_STATUS
+target_if_mgmt_rx_reo_unregister_event_handlers(struct wlan_objmgr_psoc *psoc)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif /* WLAN_MGMT_RX_REO_SUPPORT */
+#endif /* _TARGET_IF_MGMT_TXRX_RX_REO_H_ */

+ 56 - 0
target_if/mgmt_txrx/src/target_if_mgmt_txrx_rx_reo.c

@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ *  DOC: target_if_mgmt_txrx_rx_reo.c
+ *  This file contains definitions of management rx re-ordering related APIs.
+ */
+
+#include <wlan_objmgr_psoc_obj.h>
+#include <qdf_status.h>
+#include <target_if.h>
+
+QDF_STATUS
+target_if_mgmt_rx_reo_register_event_handlers(struct wlan_objmgr_psoc *psoc)
+{
+	struct wmi_unified *wmi_handle;
+
+	wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
+	if (!wmi_handle) {
+		mgmt_txrx_err("Invalid WMI handle");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	/* Register mgmt rx fw consumed event handler here */
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+target_if_mgmt_rx_reo_unregister_event_handlers(struct wlan_objmgr_psoc *psoc)
+{
+	struct wmi_unified *wmi_handle;
+
+	wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
+	if (!wmi_handle) {
+		mgmt_txrx_err("Invalid WMI handle");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	/* Unregister mgmt rx fw consumed event handler here */
+
+	return QDF_STATUS_SUCCESS;
+}