aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2010-03-18 06:26:30 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-03-23 16:50:19 -0400
commit1b00f546fc4271d94c1bccb1955ce64d9ace1000 (patch)
treef004609cc4913ae97f32c2e16fd7aad5d0aced95 /drivers
parent885c9907440947a4f50d4c7a93b1a45266b00b84 (diff)
wl1271: Add proper WLAN-BT co-ex configuration, and enable co-ex.
Add configuration values for the varous WLAN-BT co-ex configuration parameters, and finally enable WLAN-BT co-ex. Based on preliminary measurements, it appears the co-ex feature is not increasing WLAN power consumption, if BT is not activated. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_acx.c9
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_acx.h62
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_conf.h330
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_init.c4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c62
5 files changed, 328 insertions, 139 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.c b/drivers/net/wireless/wl12xx/wl1271_acx.c
index 405ae1bf464..e7c22d3c75a 100644
--- a/drivers/net/wireless/wl12xx/wl1271_acx.c
+++ b/drivers/net/wireless/wl12xx/wl1271_acx.c
@@ -547,7 +547,7 @@ int wl1271_acx_sg_enable(struct wl1271 *wl)
547 goto out; 547 goto out;
548 } 548 }
549 549
550 pta->enable = ACX_SG_DISABLE; 550 pta->enable = wl->conf.sg.state;
551 551
552 ret = wl1271_cmd_configure(wl, ACX_SG_ENABLE, pta, sizeof(*pta)); 552 ret = wl1271_cmd_configure(wl, ACX_SG_ENABLE, pta, sizeof(*pta));
553 if (ret < 0) { 553 if (ret < 0) {
@@ -564,7 +564,7 @@ int wl1271_acx_sg_cfg(struct wl1271 *wl)
564{ 564{
565 struct acx_bt_wlan_coex_param *param; 565 struct acx_bt_wlan_coex_param *param;
566 struct conf_sg_settings *c = &wl->conf.sg; 566 struct conf_sg_settings *c = &wl->conf.sg;
567 int ret; 567 int i, ret;
568 568
569 wl1271_debug(DEBUG_ACX, "acx sg cfg"); 569 wl1271_debug(DEBUG_ACX, "acx sg cfg");
570 570
@@ -575,8 +575,9 @@ int wl1271_acx_sg_cfg(struct wl1271 *wl)
575 } 575 }
576 576
577 /* BT-WLAN coext parameters */ 577 /* BT-WLAN coext parameters */
578 param->params[ACX_SG_BT_PER_THRESHOLD] = c->per_threshold; 578 for (i = 0; i < CONF_SG_PARAMS_MAX; i++)
579 param->param_idx = ACX_SG_BT_PER_THRESHOLD; 579 param->params[i] = c->params[i];
580 param->param_idx = CONF_SG_PARAMS_ALL;
580 581
581 ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param)); 582 ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param));
582 if (ret < 0) { 583 if (ret < 0) {
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.h b/drivers/net/wireless/wl12xx/wl1271_acx.h
index 88a05cbd345..dee3c06a717 100644
--- a/drivers/net/wireless/wl12xx/wl1271_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_acx.h
@@ -392,12 +392,6 @@ struct acx_conn_monit_params {
392 __le32 bss_lose_timeout; /* number of TU's from synch fail */ 392 __le32 bss_lose_timeout; /* number of TU's from synch fail */
393} __attribute__ ((packed)); 393} __attribute__ ((packed));
394 394
395enum {
396 ACX_SG_DISABLE = 0,
397 ACX_SG_PROTECTIVE,
398 ACX_SG_OPPORTUNISTIC
399};
400
401struct acx_bt_wlan_coex { 395struct acx_bt_wlan_coex {
402 struct acx_header header; 396 struct acx_header header;
403 397
@@ -405,64 +399,10 @@ struct acx_bt_wlan_coex {
405 u8 pad[3]; 399 u8 pad[3];
406} __attribute__ ((packed)); 400} __attribute__ ((packed));
407 401
408enum {
409 ACX_SG_BT_PER_THRESHOLD = 0,
410 ACX_SG_HV3_MAX_OVERRIDE,
411 ACX_SG_BT_NFS_SAMPLE_INTERVAL,
412 ACX_SG_BT_LOAD_RATIO,
413 ACX_SG_AUTO_PS_MODE,
414 ACX_SG_AUTO_SCAN_PROBE_REQ,
415 ACX_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3,
416 ACX_SG_ANTENNA_CONFIGURATION,
417 ACX_SG_BEACON_MISS_PERCENT,
418 ACX_SG_RATE_ADAPT_THRESH,
419 ACX_SG_RATE_ADAPT_SNR,
420 ACX_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR,
421 ACX_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR,
422 ACX_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR,
423 ACX_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR,
424 ACX_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR,
425 ACX_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR,
426 ACX_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR,
427 ACX_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR,
428 ACX_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR,
429 ACX_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR,
430 ACX_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR,
431 ACX_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR,
432 ACX_SG_RXT,
433 ACX_SG_TXT,
434 ACX_SG_ADAPTIVE_RXT_TXT,
435 ACX_SG_PS_POLL_TIMEOUT,
436 ACX_SG_UPSD_TIMEOUT,
437 ACX_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR,
438 ACX_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR,
439 ACX_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR,
440 ACX_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR,
441 ACX_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR,
442 ACX_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR,
443 ACX_SG_WLAN_ACTIVE_BT_ACL_MIN_BR,
444 ACX_SG_WLAN_ACTIVE_BT_ACL_MAX_BR,
445 ACX_SG_WLAN_ACTIVE_MAX_BT_ACL_BR,
446 ACX_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3,
447 ACX_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP,
448 ACX_SG_PASSIVE_SCAN_A2DP_BT_TIME,
449 ACX_SG_PASSIVE_SCAN_A2DP_WLAN_TIME,
450 ACX_SG_HV3_MAX_SERVED,
451 ACX_SG_DHCP_TIME,
452 ACX_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP,
453 ACX_SG_TEMP_PARAM_1,
454 ACX_SG_TEMP_PARAM_2,
455 ACX_SG_TEMP_PARAM_3,
456 ACX_SG_TEMP_PARAM_4,
457 ACX_SG_TEMP_PARAM_5,
458 ACX_SG_PARAMS_MAX,
459 ACX_SG_PARAMS_ALL = 0xff
460};
461
462struct acx_bt_wlan_coex_param { 402struct acx_bt_wlan_coex_param {
463 struct acx_header header; 403 struct acx_header header;
464 404
465 __le32 params[ACX_SG_PARAMS_MAX]; 405 __le32 params[CONF_SG_PARAMS_MAX];
466 u8 param_idx; 406 u8 param_idx;
467 u8 padding[3]; 407 u8 padding[3];
468} __attribute__ ((packed)); 408} __attribute__ ((packed));
diff --git a/drivers/net/wireless/wl12xx/wl1271_conf.h b/drivers/net/wireless/wl12xx/wl1271_conf.h
index 6f9e75cc564..7fcfe06b141 100644
--- a/drivers/net/wireless/wl12xx/wl1271_conf.h
+++ b/drivers/net/wireless/wl12xx/wl1271_conf.h
@@ -65,110 +65,318 @@ enum {
65 CONF_HW_RATE_INDEX_MAX = CONF_HW_RATE_INDEX_54MBPS, 65 CONF_HW_RATE_INDEX_MAX = CONF_HW_RATE_INDEX_54MBPS,
66}; 66};
67 67
68struct conf_sg_settings { 68enum {
69 CONF_SG_DISABLE = 0,
70 CONF_SG_PROTECTIVE,
71 CONF_SG_OPPORTUNISTIC
72};
73
74enum {
69 /* 75 /*
70 * Defines the PER threshold in PPM of the BT voice of which reaching 76 * PER threshold in PPM of the BT voice
71 * this value will trigger raising the priority of the BT voice by
72 * the BT IP until next NFS sample interval time as defined in
73 * nfs_sample_interval.
74 * 77 *
75 * Unit: PER value in PPM (parts per million) 78 * Range: 0 - 10000000
76 * #Error_packets / #Total_packets 79 */
80 CONF_SG_BT_PER_THRESHOLD = 0,
77 81
78 * Range: u32 82 /*
83 * Number of consequent RX_ACTIVE activities to override BT voice
84 * frames to ensure WLAN connection
85 *
86 * Range: 0 - 100
87 */
88 CONF_SG_HV3_MAX_OVERRIDE,
89
90 /*
91 * Defines the PER threshold of the BT voice
92 *
93 * Range: 0 - 65000
94 */
95 CONF_SG_BT_NFS_SAMPLE_INTERVAL,
96
97 /*
98 * Defines the load ratio of BT
99 *
100 * Range: 0 - 100 (%)
101 */
102 CONF_SG_BT_LOAD_RATIO,
103
104 /*
105 * Defines whether the SG will force WLAN host to enter/exit PSM
106 *
107 * Range: 1 - SG can force, 0 - host handles PSM
108 */
109 CONF_SG_AUTO_PS_MODE,
110
111 /*
112 * Compensation percentage of probe requests when scan initiated
113 * during BT voice/ACL link.
114 *
115 * Range: 0 - 255 (%)
116 */
117 CONF_SG_AUTO_SCAN_PROBE_REQ,
118
119 /*
120 * Compensation percentage of probe requests when active scan initiated
121 * during BT voice
122 *
123 * Range: 0 - 255 (%)
124 */
125 CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3,
126
127 /*
128 * Defines antenna configuration (single/dual antenna)
129 *
130 * Range: 0 - single antenna, 1 - dual antenna
131 */
132 CONF_SG_ANTENNA_CONFIGURATION,
133
134 /*
135 * The threshold (percent) of max consequtive beacon misses before
136 * increasing priority of beacon reception.
137 *
138 * Range: 0 - 100 (%)
139 */
140 CONF_SG_BEACON_MISS_PERCENT,
141
142 /*
143 * The rate threshold below which receiving a data frame from the AP
144 * will increase the priority of the data frame above BT traffic.
145 *
146 * Range: 0,2, 5(=5.5), 6, 9, 11, 12, 18, 24, 36, 48, 54
147 */
148 CONF_SG_RATE_ADAPT_THRESH,
149
150 /*
151 * Not used currently.
152 *
153 * Range: 0
154 */
155 CONF_SG_RATE_ADAPT_SNR,
156
157 /*
158 * Configure the min and max time BT gains the antenna
159 * in WLAN PSM / BT master basic rate
160 *
161 * Range: 0 - 255 (ms)
162 */
163 CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR,
164 CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR,
165
166 /*
167 * The time after it expires no new WLAN trigger frame is trasmitted
168 * in WLAN PSM / BT master basic rate
169 *
170 * Range: 0 - 255 (ms)
171 */
172 CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR,
173
174 /*
175 * Configure the min and max time BT gains the antenna
176 * in WLAN PSM / BT slave basic rate
177 *
178 * Range: 0 - 255 (ms)
79 */ 179 */
80 u32 per_threshold; 180 CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR,
181 CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR,
81 182
82 /* 183 /*
83 * This value is an absolute time in micro-seconds to limit the 184 * The time after it expires no new WLAN trigger frame is trasmitted
84 * maximum scan duration compensation while in SG 185 * in WLAN PSM / BT slave basic rate
186 *
187 * Range: 0 - 255 (ms)
85 */ 188 */
86 u32 max_scan_compensation_time; 189 CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR,
87 190
88 /* Defines the PER threshold of the BT voice of which reaching this 191 /*
89 * value will trigger raising the priority of the BT voice until next 192 * Configure the min and max time BT gains the antenna
90 * NFS sample interval time as defined in sample_interval. 193 * in WLAN PSM / BT master EDR
91 * 194 *
92 * Unit: msec 195 * Range: 0 - 255 (ms)
93 * Range: 1-65000
94 */ 196 */
95 u16 nfs_sample_interval; 197 CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR,
198 CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR,
96 199
97 /* 200 /*
98 * Defines the load ratio for the BT. 201 * The time after it expires no new WLAN trigger frame is trasmitted
99 * The WLAN ratio is: 100 - load_ratio 202 * in WLAN PSM / BT master EDR
100 * 203 *
101 * Unit: Percent 204 * Range: 0 - 255 (ms)
102 * Range: 0-100
103 */ 205 */
104 u8 load_ratio; 206 CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR,
105 207
106 /* 208 /*
107 * true - Co-ex is allowed to enter/exit P.S automatically and 209 * Configure the min and max time BT gains the antenna
108 * transparently to the host 210 * in WLAN PSM / BT slave EDR
109 * 211 *
110 * false - Co-ex is disallowed to enter/exit P.S and will trigger an 212 * Range: 0 - 255 (ms)
111 * event to the host to notify for the need to enter/exit P.S 213 */
112 * due to BT change state 214 CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR,
215 CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR,
216
217 /*
218 * The time after it expires no new WLAN trigger frame is trasmitted
219 * in WLAN PSM / BT slave EDR
113 * 220 *
221 * Range: 0 - 255 (ms)
114 */ 222 */
115 u8 auto_ps_mode; 223 CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR,
116 224
117 /* 225 /*
118 * This parameter defines the compensation percentage of num of probe 226 * RX guard time before the beginning of a new BT voice frame during
119 * requests in case scan is initiated during BT voice/BT ACL 227 * which no new WLAN trigger frame is transmitted.
120 * guaranteed link.
121 * 228 *
122 * Unit: Percent 229 * Range: 0 - 100000 (us)
123 * Range: 0-255 (0 - No compensation)
124 */ 230 */
125 u8 probe_req_compensation; 231 CONF_SG_RXT,
126 232
127 /* 233 /*
128 * This parameter defines the compensation percentage of scan window 234 * TX guard time before the beginning of a new BT voice frame during
129 * size in case scan is initiated during BT voice/BT ACL Guaranteed 235 * which no new WLAN frame is transmitted.
130 * link.
131 * 236 *
132 * Unit: Percent 237 * Range: 0 - 100000 (us)
133 * Range: 0-255 (0 - No compensation)
134 */ 238 */
135 u8 scan_window_compensation; 239
240 CONF_SG_TXT,
136 241
137 /* 242 /*
138 * Defines the antenna configuration. 243 * Enable adaptive RXT/TXT algorithm. If disabled, the host values
244 * will be utilized.
139 * 245 *
140 * Range: 0 - Single Antenna; 1 - Dual Antenna 246 * Range: 0 - disable, 1 - enable
141 */ 247 */
142 u8 antenna_config; 248 CONF_SG_ADAPTIVE_RXT_TXT,
143 249
144 /* 250 /*
145 * The percent out of the Max consecutive beacon miss roaming trigger 251 * The used WLAN legacy service period during active BT ACL link
146 * which is the threshold for raising the priority of beacon
147 * reception.
148 * 252 *
149 * Range: 1-100 253 * Range: 0 - 255 (ms)
150 * N = MaxConsecutiveBeaconMiss
151 * P = coexMaxConsecutiveBeaconMissPrecent
152 * Threshold = MIN( N-1, round(N * P / 100))
153 */ 254 */
154 u8 beacon_miss_threshold; 255 CONF_SG_PS_POLL_TIMEOUT,
155 256
156 /* 257 /*
157 * The RX rate threshold below which rate adaptation is assumed to be 258 * The used WLAN UPSD service period during active BT ACL link
158 * occurring at the AP which will raise priority for ACTIVE_RX and RX
159 * SP.
160 * 259 *
161 * Range: HW_BIT_RATE_* 260 * Range: 0 - 255 (ms)
162 */ 261 */
163 u32 rate_adaptation_threshold; 262 CONF_SG_UPSD_TIMEOUT,
164 263
165 /* 264 /*
166 * The SNR above which the RX rate threshold indicating AP rate 265 * Configure the min and max time BT gains the antenna
167 * adaptation is valid 266 * in WLAN Active / BT master EDR
168 * 267 *
169 * Range: -128 - 127 268 * Range: 0 - 255 (ms)
170 */ 269 */
171 s8 rate_adaptation_snr; 270 CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR,
271 CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR,
272
273 /*
274 * The maximum time WLAN can gain the antenna for
275 * in WLAN Active / BT master EDR
276 *
277 * Range: 0 - 255 (ms)
278 */
279 CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR,
280
281 /*
282 * Configure the min and max time BT gains the antenna
283 * in WLAN Active / BT slave EDR
284 *
285 * Range: 0 - 255 (ms)
286 */
287 CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR,
288 CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR,
289
290 /*
291 * The maximum time WLAN can gain the antenna for
292 * in WLAN Active / BT slave EDR
293 *
294 * Range: 0 - 255 (ms)
295 */
296 CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR,
297
298 /*
299 * Configure the min and max time BT gains the antenna
300 * in WLAN Active / BT basic rate
301 *
302 * Range: 0 - 255 (ms)
303 */
304 CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR,
305 CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR,
306
307 /*
308 * The maximum time WLAN can gain the antenna for
309 * in WLAN Active / BT basic rate
310 *
311 * Range: 0 - 255 (ms)
312 */
313 CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR,
314
315 /*
316 * Compensation percentage of WLAN passive scan window if initiated
317 * during BT voice
318 *
319 * Range: 0 - 1000 (%)
320 */
321 CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3,
322
323 /*
324 * Compensation percentage of WLAN passive scan window if initiated
325 * during BT A2DP
326 *
327 * Range: 0 - 1000 (%)
328 */
329 CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP,
330
331 /*
332 * Fixed time ensured for BT traffic to gain the antenna during WLAN
333 * passive scan.
334 *
335 * Range: 0 - 1000 ms
336 */
337 CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME,
338
339 /*
340 * Fixed time ensured for WLAN traffic to gain the antenna during WLAN
341 * passive scan.
342 *
343 * Range: 0 - 1000 ms
344 */
345 CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME,
346
347 /*
348 * Number of consequent BT voice frames not interrupted by WLAN
349 *
350 * Range: 0 - 100
351 */
352 CONF_SG_HV3_MAX_SERVED,
353
354 /*
355 * Protection time of the DHCP procedure.
356 *
357 * Range: 0 - 100000 (ms)
358 */
359 CONF_SG_DHCP_TIME,
360
361 /*
362 * Compensation percentage of WLAN active scan window if initiated
363 * during BT A2DP
364 *
365 * Range: 0 - 1000 (%)
366 */
367 CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP,
368 CONF_SG_TEMP_PARAM_1,
369 CONF_SG_TEMP_PARAM_2,
370 CONF_SG_TEMP_PARAM_3,
371 CONF_SG_TEMP_PARAM_4,
372 CONF_SG_TEMP_PARAM_5,
373 CONF_SG_PARAMS_MAX,
374 CONF_SG_PARAMS_ALL = 0xff
375};
376
377struct conf_sg_settings {
378 __le32 params[CONF_SG_PARAMS_MAX];
379 u8 state;
172}; 380};
173 381
174enum conf_rx_queue_type { 382enum conf_rx_queue_type {
diff --git a/drivers/net/wireless/wl12xx/wl1271_init.c b/drivers/net/wireless/wl12xx/wl1271_init.c
index 86c30a86a45..d68445c9d33 100644
--- a/drivers/net/wireless/wl12xx/wl1271_init.c
+++ b/drivers/net/wireless/wl12xx/wl1271_init.c
@@ -160,11 +160,11 @@ int wl1271_init_pta(struct wl1271 *wl)
160{ 160{
161 int ret; 161 int ret;
162 162
163 ret = wl1271_acx_sg_enable(wl); 163 ret = wl1271_acx_sg_cfg(wl);
164 if (ret < 0) 164 if (ret < 0)
165 return ret; 165 return ret;
166 166
167 ret = wl1271_acx_sg_cfg(wl); 167 ret = wl1271_acx_sg_enable(wl);
168 if (ret < 0) 168 if (ret < 0)
169 return ret; 169 return ret;
170 170
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index b3abb455bd7..6501d6e2d3b 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -48,17 +48,57 @@
48 48
49static struct conf_drv_settings default_conf = { 49static struct conf_drv_settings default_conf = {
50 .sg = { 50 .sg = {
51 .per_threshold = 7500, 51 .params = {
52 .max_scan_compensation_time = 120000, 52 [CONF_SG_BT_PER_THRESHOLD] = 7500,
53 .nfs_sample_interval = 400, 53 [CONF_SG_HV3_MAX_OVERRIDE] = 0,
54 .load_ratio = 50, 54 [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400,
55 .auto_ps_mode = 0, 55 [CONF_SG_BT_LOAD_RATIO] = 50,
56 .probe_req_compensation = 170, 56 [CONF_SG_AUTO_PS_MODE] = 0,
57 .scan_window_compensation = 50, 57 [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170,
58 .antenna_config = 0, 58 [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50,
59 .beacon_miss_threshold = 60, 59 [CONF_SG_ANTENNA_CONFIGURATION] = 0,
60 .rate_adaptation_threshold = CONF_HW_BIT_RATE_12MBPS, 60 [CONF_SG_BEACON_MISS_PERCENT] = 60,
61 .rate_adaptation_snr = 0 61 [CONF_SG_RATE_ADAPT_THRESH] = 12,
62 [CONF_SG_RATE_ADAPT_SNR] = 0,
63 [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_BR] = 10,
64 [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_BR] = 30,
65 [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_BR] = 8,
66 [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_BR] = 20,
67 [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_BR] = 50,
68 /* Note: with UPSD, this should be 4 */
69 [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_BR] = 8,
70 [CONF_SG_WLAN_PS_BT_ACL_MASTER_MIN_EDR] = 7,
71 [CONF_SG_WLAN_PS_BT_ACL_MASTER_MAX_EDR] = 25,
72 [CONF_SG_WLAN_PS_MAX_BT_ACL_MASTER_EDR] = 20,
73 /* Note: with UPDS, this should be 15 */
74 [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MIN_EDR] = 8,
75 /* Note: with UPDS, this should be 50 */
76 [CONF_SG_WLAN_PS_BT_ACL_SLAVE_MAX_EDR] = 40,
77 /* Note: with UPDS, this should be 10 */
78 [CONF_SG_WLAN_PS_MAX_BT_ACL_SLAVE_EDR] = 20,
79 [CONF_SG_RXT] = 1200,
80 [CONF_SG_TXT] = 1000,
81 [CONF_SG_ADAPTIVE_RXT_TXT] = 1,
82 [CONF_SG_PS_POLL_TIMEOUT] = 10,
83 [CONF_SG_UPSD_TIMEOUT] = 10,
84 [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MIN_EDR] = 7,
85 [CONF_SG_WLAN_ACTIVE_BT_ACL_MASTER_MAX_EDR] = 15,
86 [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_MASTER_EDR] = 15,
87 [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MIN_EDR] = 8,
88 [CONF_SG_WLAN_ACTIVE_BT_ACL_SLAVE_MAX_EDR] = 20,
89 [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_SLAVE_EDR] = 15,
90 [CONF_SG_WLAN_ACTIVE_BT_ACL_MIN_BR] = 20,
91 [CONF_SG_WLAN_ACTIVE_BT_ACL_MAX_BR] = 50,
92 [CONF_SG_WLAN_ACTIVE_MAX_BT_ACL_BR] = 10,
93 [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3] = 200,
94 [CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_A2DP] = 800,
95 [CONF_SG_PASSIVE_SCAN_A2DP_BT_TIME] = 75,
96 [CONF_SG_PASSIVE_SCAN_A2DP_WLAN_TIME] = 15,
97 [CONF_SG_HV3_MAX_SERVED] = 6,
98 [CONF_SG_DHCP_TIME] = 5000,
99 [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_A2DP] = 100,
100 },
101 .state = CONF_SG_PROTECTIVE,
62 }, 102 },
63 .rx = { 103 .rx = {
64 .rx_msdu_life_time = 512000, 104 .rx_msdu_life_time = 512000,