xref: /wlan-dirver/qca-wifi-host-cmn/hif/inc/cfg_hif.h (revision d281143698c171e8a9883bbcdf2b9849b1f64630)
1 /**
2  * Copyright (c) 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 #ifndef _CFG_HIF_H_
20 #define _CFG_HIF_H_
21 
22 /* Min/Max/default CE status srng timer threshold */
23 #define WLAN_CFG_CE_STATUS_RING_TIMER_THRESH_MIN 0
24 #define WLAN_CFG_CE_STATUS_RING_TIMER_THRESH_MAX 4096
25 #define WLAN_CFG_CE_STATUS_RING_TIMER_THRESH_DEFAULT 4096
26 
27 /* Min/Max/default CE status srng batch count threshold */
28 #define WLAN_CFG_CE_STATUS_RING_BATCH_COUNT_THRESH_MIN 0
29 #define WLAN_CFG_CE_STATUS_RING_BATCH_COUNT_THRESH_MAX 512
30 #define WLAN_CFG_CE_STATUS_RING_BATCH_COUNT_THRESH_DEFAULT 1
31 
32 #ifdef WLAN_CE_INTERRUPT_THRESHOLD_CONFIG
33 /**
34  * <ini>
35  * ce_status_ring_timer_thresh - ce status srng timer threshold
36  * @Min: 0
37  * @Max: 4096
38  * @Default: 0
39  *
40  * This ini specifies the timer threshold for CE status srng to
41  * indicate the interrupt to be fired whenever the timer threshold
42  * runs out.
43  *
44  * Supported Feature: interrupt threshold for CE status srng
45  *
46  * Usage: Internal
47  *
48  * </ini>
49  */
50 #define CFG_CE_STATUS_RING_TIMER_THRESHOLD \
51 	CFG_INI_UINT("ce_status_ring_timer_threshold", \
52 		     WLAN_CFG_CE_STATUS_RING_TIMER_THRESH_MIN, \
53 		     WLAN_CFG_CE_STATUS_RING_TIMER_THRESH_MAX, \
54 		     WLAN_CFG_CE_STATUS_RING_TIMER_THRESH_DEFAULT, \
55 		     CFG_VALUE_OR_DEFAULT, \
56 		     "CE Status ring timer threshold")
57 
58 /**
59  * <ini>
60  * ce_status_ring_batch_count_thresh - ce status srng batch count threshold
61  * @Min: 0
62  * @Max: 512
63  * @Default: 1
64  *
65  * This ini specifies the batch count threshold for CE status srng to
66  * indicate the interrupt to be fired for a given number of packets in
67  * the ring.
68  *
69  * Supported Feature: interrupt threshold for CE status srng
70  *
71  * Usage: Internal
72  *
73  * </ini>
74  */
75 #define CFG_CE_STATUS_RING_BATCH_COUNT_THRESHOLD \
76 	CFG_INI_UINT("ce_status_ring_batch_count_threshold", \
77 		     WLAN_CFG_CE_STATUS_RING_BATCH_COUNT_THRESH_MIN, \
78 		     WLAN_CFG_CE_STATUS_RING_BATCH_COUNT_THRESH_MAX, \
79 		     WLAN_CFG_CE_STATUS_RING_BATCH_COUNT_THRESH_DEFAULT, \
80 		     CFG_VALUE_OR_DEFAULT, \
81 		     "CE Status ring batch count threshold")
82 
83 #define CFG_HIF \
84 	CFG(CFG_CE_STATUS_RING_TIMER_THRESHOLD) \
85 	CFG(CFG_CE_STATUS_RING_BATCH_COUNT_THRESHOLD)
86 #else
87 #define CFG_HIF
88 #endif /* WLAN_CE_INTERRUPT_THRESHOLD_CONFIG */
89 #endif /* _CFG_HIF_H_ */
90