1 /*
2  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 /**
19  * DOC:wlan_dcs_tgt_api.c
20  *
21  * This file provide API definitions to update dcs from southbound interface
22  */
23 
24 #include "wlan_dcs_tgt_api.h"
25 #include "../../core/src/wlan_dcs.h"
26 
tgt_dcs_process_event(struct wlan_objmgr_psoc * psoc,struct wlan_host_dcs_event * event)27 QDF_STATUS tgt_dcs_process_event(struct wlan_objmgr_psoc *psoc,
28 				 struct wlan_host_dcs_event *event)
29 {
30 	return wlan_dcs_process(psoc, event);
31 }
32 
33 #ifdef CONFIG_AFC_SUPPORT
tgt_afc_trigger_dcs(struct wlan_objmgr_pdev * pdev)34 QDF_STATUS tgt_afc_trigger_dcs(struct wlan_objmgr_pdev *pdev)
35 {
36 	struct wlan_objmgr_psoc *psoc;
37 	struct wlan_host_dcs_event *event;
38 	QDF_STATUS status;
39 
40 	psoc = wlan_pdev_get_psoc(pdev);
41 
42 	event = qdf_mem_malloc(sizeof(*event));
43 	if (!event)
44 		return QDF_STATUS_E_NOMEM;
45 
46 	event->dcs_param.interference_type = WLAN_HOST_DCS_AFC;
47 	event->dcs_param.pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
48 	status = wlan_dcs_process(psoc, event);
49 
50 	qdf_mem_free(event);
51 	return status;
52 }
53 #endif
54