1 /*
2  * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
3  *
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  * DOC: This file contains interop issues ap north bound interface definitions
21  */
22 #include <wlan_objmgr_vdev_obj.h>
23 #include <wlan_interop_issues_ap_ucfg_api.h>
24 #include <wlan_interop_issues_ap_tgt_api.h>
25 #include <wlan_cfg80211_interop_issues_ap.h>
26 #include <wlan_interop_issues_ap_api.h>
27 
28 QDF_STATUS
ucfg_set_interop_issues_ap_config(struct wlan_objmgr_psoc * psoc,struct wlan_interop_issues_ap_info * rap)29 ucfg_set_interop_issues_ap_config(struct wlan_objmgr_psoc *psoc,
30 				  struct wlan_interop_issues_ap_info *rap)
31 {
32 	return tgt_set_interop_issues_ap_req(psoc, rap);
33 }
34 
ucfg_register_interop_issues_ap_callback(struct wlan_objmgr_pdev * pdev,struct wlan_interop_issues_ap_callbacks * cb)35 void ucfg_register_interop_issues_ap_callback(struct wlan_objmgr_pdev *pdev,
36 				   struct wlan_interop_issues_ap_callbacks *cb)
37 {
38 	struct wlan_objmgr_psoc *psoc;
39 	struct interop_issues_ap_psoc_priv_obj *obj;
40 
41 	psoc = wlan_pdev_get_psoc(pdev);
42 	if (!psoc) {
43 		interop_issues_ap_err("psoc object is NULL");
44 		return;
45 	}
46 
47 	obj = interop_issues_ap_get_psoc_priv_obj(psoc);
48 	if (!obj) {
49 		interop_issues_ap_err("interop issues ap priv obj is NULL");
50 		return;
51 	}
52 
53 	obj->cbs.os_if_interop_issues_ap_event_handler =
54 			cb->os_if_interop_issues_ap_event_handler;
55 }
56 
ucfg_interop_issues_ap_psoc_enable(struct wlan_objmgr_psoc * psoc)57 QDF_STATUS ucfg_interop_issues_ap_psoc_enable(struct wlan_objmgr_psoc *psoc)
58 {
59 	return wlan_interop_issues_ap_psoc_enable(psoc);
60 }
61 
ucfg_interop_issues_ap_psoc_disable(struct wlan_objmgr_psoc * psoc)62 QDF_STATUS ucfg_interop_issues_ap_psoc_disable(struct wlan_objmgr_psoc *psoc)
63 {
64 	return wlan_interop_issues_ap_psoc_disable(psoc);
65 }
66 
ucfg_interop_issues_ap_init(void)67 QDF_STATUS ucfg_interop_issues_ap_init(void)
68 {
69 	return wlan_interop_issues_ap_init();
70 }
71 
ucfg_interop_issues_ap_deinit(void)72 QDF_STATUS ucfg_interop_issues_ap_deinit(void)
73 {
74 	return wlan_interop_issues_ap_deinit();
75 }
76