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