blob: 1c8150fe0384c60a1fb9a07490e6ec16ace765e7 [file] [log] [blame]
Abhishek Amburefb402172019-07-18 16:59:25 +05301/*
Santosh Anbu30338832020-01-09 16:02:44 +05302 * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
Abhishek Amburefb402172019-07-18 16:59:25 +05303 *
4 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19/*
20 * This file contains the API definitions for the Unified Wireless Module
21 * Interface (WMI).
22 */
23#include <htc_api.h>
24#include <htc_api.h>
25#include <wmi_unified_priv.h>
26#include <wmi_unified_api.h>
Abhishek Amburefb402172019-07-18 16:59:25 +053027#include <qdf_module.h>
28#include <qdf_list.h>
29#include <qdf_platform.h>
30#ifdef WMI_EXT_DBG
31#include <qdf_list.h>
32#endif
33
Abhishek Amburefb402172019-07-18 16:59:25 +053034#include <linux/debugfs.h>
35#include <wmi_unified_param.h>
36#include <cdp_txrx_cmn_struct.h>
37#include <wmi_unified_vdev_api.h>
38
39QDF_STATUS
Abhishek Amburefb402172019-07-18 16:59:25 +053040wmi_extract_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle, void *evt_buf,
41 uint32_t *num_vdevs)
42{
43 if (wmi_handle->ops->extract_tbttoffset_num_vdevs)
44 return wmi_handle->ops->extract_tbttoffset_num_vdevs(wmi_handle,
45 evt_buf,
46 num_vdevs);
47
48 return QDF_STATUS_E_FAILURE;
49}
50
Abhishek Amburefb402172019-07-18 16:59:25 +053051QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(
52 struct wmi_unified *wmi_handle,
53 struct multiple_vdev_restart_params *param)
54{
55 if (wmi_handle->ops->send_multiple_vdev_restart_req_cmd)
56 return wmi_handle->ops->send_multiple_vdev_restart_req_cmd(
57 wmi_handle, param);
58
59 return QDF_STATUS_E_FAILURE;
60}
61
62QDF_STATUS wmi_unified_beacon_send_cmd(struct wmi_unified *wmi_handle,
63 struct beacon_params *param)
64{
65 if (wmi_handle->ops->send_beacon_send_cmd)
66 return wmi_handle->ops->send_beacon_send_cmd(wmi_handle,
67 param);
68
69 return QDF_STATUS_E_FAILURE;
70}
71
72QDF_STATUS
73wmi_extract_vdev_start_resp(struct wmi_unified *wmi_handle, void *evt_buf,
74 wmi_host_vdev_start_resp *vdev_rsp)
75{
76 if (wmi_handle->ops->extract_vdev_start_resp)
77 return wmi_handle->ops->extract_vdev_start_resp(wmi_handle,
78 evt_buf,
79 vdev_rsp);
80
81 return QDF_STATUS_E_FAILURE;
82}
83
84QDF_STATUS
85wmi_extract_vdev_delete_resp(struct wmi_unified *wmi_handle, void *evt_buf,
86 struct wmi_host_vdev_delete_resp *delete_rsp)
87{
88 if (wmi_handle->ops->extract_vdev_delete_resp)
89 return wmi_handle->ops->extract_vdev_delete_resp(wmi_handle,
90 evt_buf,
91 delete_rsp);
92
93 return QDF_STATUS_E_FAILURE;
94}
95
96QDF_STATUS wmi_extract_vdev_peer_delete_all_response_event(
97 struct wmi_unified *wmi_handle,
98 void *evt_buf,
99 struct wmi_host_vdev_peer_delete_all_response_event *delete_rsp)
100{
Naga542fe342019-08-28 18:02:37 +0530101 if (wmi_handle->ops->extract_vdev_peer_delete_all_response_event)
102 return
103 wmi_handle->ops->extract_vdev_peer_delete_all_response_event(
104 wmi_handle,
105 evt_buf,
106 delete_rsp);
107
Abhishek Amburefb402172019-07-18 16:59:25 +0530108 return QDF_STATUS_E_FAILURE;
109}
110
111QDF_STATUS
112wmi_extract_vdev_stopped_param(struct wmi_unified *wmi_handle, void *evt_buf,
113 uint32_t *vdev_id)
114{
115 if (wmi_handle->ops->extract_vdev_stopped_param)
116 return wmi_handle->ops->extract_vdev_stopped_param(wmi_handle,
117 evt_buf,
118 vdev_id);
119
120 return QDF_STATUS_E_FAILURE;
121}
122
123QDF_STATUS
124wmi_extract_ext_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle,
125 void *evt_buf, uint32_t *num_vdevs)
126{
127 if (wmi_handle->ops->extract_ext_tbttoffset_num_vdevs)
128 return wmi_handle->ops->extract_ext_tbttoffset_num_vdevs(
129 wmi_handle,
130 evt_buf, num_vdevs);
131
132 return QDF_STATUS_E_FAILURE;
133}
134
135QDF_STATUS
136wmi_unified_vdev_config_ratemask_cmd_send(struct wmi_unified *wmi_handle,
137 struct config_ratemask_params *param)
138{
139 if (wmi_handle->ops->send_vdev_config_ratemask_cmd)
140 return wmi_handle->ops->send_vdev_config_ratemask_cmd(
141 wmi_handle, param);
142
143 return QDF_STATUS_E_FAILURE;
144}
145
146QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(
147 struct wmi_unified *wmi_handle,
148 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
149 struct set_neighbour_rx_params *param)
150{
151 if (wmi_handle->ops->send_vdev_set_neighbour_rx_cmd)
152 return wmi_handle->ops->send_vdev_set_neighbour_rx_cmd(
153 wmi_handle,
154 macaddr, param);
155
156 return QDF_STATUS_E_FAILURE;
157}
Santosh Anbu30338832020-01-09 16:02:44 +0530158
159QDF_STATUS wmi_extract_multi_vdev_restart_resp_event(
160 struct wmi_unified *wmi_handle,
161 void *evt_buf,
162 struct multi_vdev_restart_resp *restart_rsp)
163{
164 if (wmi_handle->ops->extract_multi_vdev_restart_resp_event)
165 return wmi_handle->ops->extract_multi_vdev_restart_resp_event(
166 wmi_handle, evt_buf, restart_rsp);
167
168 return QDF_STATUS_E_FAILURE;
169}