1 /*
2 * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
3 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for
6 * any purpose with or without fee is hereby granted, provided that the
7 * above copyright notice and this permission notice appear in all
8 * copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
18 */
19
20 /**
21 * DOC: dp_cal_client_api.h
22 * define timer to update DP stats
23 */
24 #ifndef _DP_CAL_CLIENT_H_
25 #define _DP_CAL_CLIENT_H_
26
27 #include<cdp_txrx_stats_struct.h>
28 #include <qdf_timer.h>
29 #include <qdf_mem.h>
30 #include <cdp_txrx_handle.h>
31
32 /*timer will run every 1 sec*/
33 #define DP_CAL_CLIENT_TIME 1000
34
35 struct cal_client {
36 qdf_timer_t cal_client_timer;
37 void (*iterate_update_peer_list)(struct cdp_pdev *ctx);
38 struct cdp_pdev *pdev_hdl;
39 };
40
41 void dp_cal_client_attach(struct cdp_cal_client **cal_client_ctx,
42 struct cdp_pdev *pdev, qdf_device_t osdev,
43 void (*iterate_peer_list)(struct cdp_pdev *));
44 void dp_cal_client_detach(struct cdp_cal_client **cal_client_ctx);
45 void dp_cal_client_timer_start(void *ctx);
46 void dp_cal_client_timer_stop(void *ctx);
47 void dp_cal_client_stats_timer_fn(void *pdev_hdl);
48 void dp_cal_client_update_peer_stats(struct cdp_peer_stats *peer_stats);
49 void dp_cal_client_update_peer_stats_wifi3(struct cdp_calibr_stats_intf *stats_intf,
50 struct cdp_calibr_stats *calibr_stats);
51
52 #ifndef ATH_SUPPORT_EXT_STAT
dp_cal_client_attach(struct cdp_cal_client ** cal_client_ctx,struct cdp_pdev * pdev,qdf_device_t osdev,void (* iterate_peer_list)(struct cdp_pdev *))53 void dp_cal_client_attach(struct cdp_cal_client **cal_client_ctx,
54 struct cdp_pdev *pdev, qdf_device_t osdev,
55 void (*iterate_peer_list)(struct cdp_pdev *))
56 {
57 }
58
dp_cal_client_detach(struct cdp_cal_client ** cal_client_ctx)59 void dp_cal_client_detach(struct cdp_cal_client **cal_client_ctx)
60 {
61 }
62
dp_cal_client_timer_start(void * ctx)63 void dp_cal_client_timer_start(void *ctx)
64 {
65 }
66
dp_cal_client_timer_stop(void * ctx)67 void dp_cal_client_timer_stop(void *ctx)
68 {
69 }
70
dp_cal_client_stats_timer_fn(void * pdev_hdl)71 void dp_cal_client_stats_timer_fn(void *pdev_hdl)
72 {
73 }
74
dp_cal_client_update_peer_stats(struct cdp_peer_stats * peer_stats)75 void dp_cal_client_update_peer_stats(struct cdp_peer_stats *peer_stats)
76 {
77 }
78
dp_cal_client_update_peer_stats_wifi3(struct cdp_calibr_stats_intf * stats_intf,struct cdp_calibr_stats * calibr_stats)79 void dp_cal_client_update_peer_stats_wifi3(struct cdp_calibr_stats_intf *stats_intf,
80 struct cdp_calibr_stats *calibr_stats)
81 {
82 }
83 #endif
84
85 #endif /*_DP_CAL_CLIENT_H_*/
86