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