1 /*
2  * Copyright (c) 2012-2019 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 /**
20  * DOC: This file contains centralized definitions of power save related
21  * converged configurations.
22  */
23 
24 #ifndef __CFG_MLME_POWERSAVE_H
25 #define __CFG_MLME_POWERSAVE_H
26 
27 /*
28  * <ini>
29  * gEnableImps - Enable/Disable IMPS
30  * @Min: 0
31  * @Max: 1
32  * @Default: 1
33  *
34  * This ini is used to enable/Disable IMPS(IdleModePowerSave) Mode
35  *
36  * Related: None
37  *
38  * Supported Feature: Power Save
39  *
40  * Usage: External
41  *
42  * </ini>
43  */
44 #define CFG_ENABLE_IMPS CFG_INI_BOOL( \
45 		"gEnableImps", \
46 		1,\
47 		"Enable/disable IMPS")
48 
49 /*
50  * <ini>
51  * gEnableBmps - Enable/Disable BMPS
52  * @Min: 0
53  * @Max: 1
54  * @Default: 1
55  *
56  * This ini is used to enable/Disable BMPS(BeaconModePowerSave) Mode
57  *
58  * Related: None
59  *
60  * Supported Feature: Power Save
61  *
62  * Usage: External
63  *
64  * </ini>
65  */
66 #define CFG_ENABLE_PS  CFG_INI_BOOL( \
67 		"gEnableBmps", \
68 		1,\
69 		"Enable/disable BMPS")
70 
71 /*
72  * <ini>
73  * gAutoBmpsTimerValue - Set Auto BMPS Timer value
74  * @Min: 0
75  * @Max: 1000
76  * @Default: 600
77  *
78  * This ini is used to set Auto BMPS Timer value in seconds
79  *
80  * Related: gEnableBmps
81  *
82  * Supported Feature: Power Save
83  *
84  * Usage: External
85  *
86  * </ini>
87  */
88 #define CFG_AUTO_BMPS_ENABLE_TIMER CFG_INI_UINT( \
89 		"gAutoBmpsTimerValue", \
90 		0, \
91 		1000, \
92 		600, \
93 		CFG_VALUE_OR_DEFAULT, \
94 		"Auto BMPS Timer value")
95 
96 /*
97  * <ini>
98  * gBmpsMinListenInterval - Set BMPS Minimum Listen Interval
99  * @Min: 1
100  * @Max: 65535
101  * @Default: 1
102  *
103  * This ini is used to set BMPS Minimum Listen Interval. If gPowerUsage
104  * is set "Min", this INI need to be set.
105  *
106  * Related: gEnableBmps, gPowerUsage
107  *
108  * Supported Feature: Power Save
109  *
110  * Usage: External
111  *
112  * </ini>
113  */
114 #define CFG_BMPS_MINIMUM_LI CFG_INI_UINT( \
115 		"gBmpsMinListenInterval", \
116 		1, \
117 		65535, \
118 		1, \
119 		CFG_VALUE_OR_DEFAULT, \
120 		"BMPS Minimum Listen Interval")
121 
122 /*
123  * <ini>
124  * gBmpsMaxListenInterval - Set BMPS Maximum Listen Interval
125  * @Min: 1
126  * @Max: 65535
127  * @Default: 1
128  *
129  * This ini is used to set BMPS Maximum Listen Interval. If gPowerUsage
130  * is set "Max", this INI need to be set.
131  *
132  * Related: gEnableBmps, gPowerUsage
133  *
134  * Supported Feature: Power Save
135  *
136  * Usage: External
137  *
138  * </ini>
139  */
140 #define CFG_BMPS_MAXIMUM_LI CFG_INI_UINT( \
141 		"gBmpsMaxListenInterval", \
142 		1, \
143 		65535, \
144 		1, \
145 		CFG_VALUE_OR_DEFAULT, \
146 		"BMPS Maximum Listen Interval")
147 
148 /*
149  * <ini>
150  * gEnableDTIMSelectionDiversity - Enable/Disable chain
151  * selection optimization for one chain dtim
152  * @Min: 0
153  * @Max: 30
154  * @Default: 5
155  *
156  * Usage: External
157  *
158  * </ini>
159  */
160 #define CFG_DTIM_SELECTION_DIVERSITY CFG_INI_UINT( \
161 		"gEnableDTIMSelectionDiversity", \
162 		0, \
163 		30, \
164 		5, \
165 		CFG_VALUE_OR_DEFAULT, \
166 		"Chain selection diversity value")
167 
168 #define CFG_POWERSAVE_ALL \
169 	CFG(CFG_ENABLE_IMPS) \
170 	CFG(CFG_ENABLE_PS) \
171 	CFG(CFG_AUTO_BMPS_ENABLE_TIMER) \
172 	CFG(CFG_BMPS_MINIMUM_LI) \
173 	CFG(CFG_BMPS_MAXIMUM_LI) \
174 	CFG(CFG_DTIM_SELECTION_DIVERSITY)
175 
176 #endif /* __CFG_MLME_POWERSAVE_H */
177