aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl1251_acx.c
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2009-11-17 11:48:30 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-18 17:09:20 -0500
commit6b21a2cd315e2e56a1748bd3ef9d910fe4f2e711 (patch)
treebf95a7ff4215c1fa9db214f28c9db284838b5580 /drivers/net/wireless/wl12xx/wl1251_acx.c
parent287f6f9672635f4e948c0aa96754a2ce448ebdb2 (diff)
wl1251: Configure beacon filtering on if PSM used
Enable beacon filtering when PSM is enabled Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1251_acx.c')
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_acx.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_acx.c b/drivers/net/wireless/wl12xx/wl1251_acx.c
index 4a9c70889a45..50633e043cfd 100644
--- a/drivers/net/wireless/wl12xx/wl1251_acx.c
+++ b/drivers/net/wireless/wl12xx/wl1251_acx.c
@@ -494,7 +494,7 @@ out:
494 return ret; 494 return ret;
495} 495}
496 496
497int wl1251_acx_beacon_filter_opt(struct wl1251 *wl) 497int wl1251_acx_beacon_filter_opt(struct wl1251 *wl, bool enable_filter)
498{ 498{
499 struct acx_beacon_filter_option *beacon_filter; 499 struct acx_beacon_filter_option *beacon_filter;
500 int ret; 500 int ret;
@@ -507,7 +507,7 @@ int wl1251_acx_beacon_filter_opt(struct wl1251 *wl)
507 goto out; 507 goto out;
508 } 508 }
509 509
510 beacon_filter->enable = 0; 510 beacon_filter->enable = enable_filter;
511 beacon_filter->max_num_beacons = 0; 511 beacon_filter->max_num_beacons = 0;
512 512
513 ret = wl1251_cmd_configure(wl, ACX_BEACON_FILTER_OPT, 513 ret = wl1251_cmd_configure(wl, ACX_BEACON_FILTER_OPT,
@@ -525,6 +525,7 @@ out:
525int wl1251_acx_beacon_filter_table(struct wl1251 *wl) 525int wl1251_acx_beacon_filter_table(struct wl1251 *wl)
526{ 526{
527 struct acx_beacon_filter_ie_table *ie_table; 527 struct acx_beacon_filter_ie_table *ie_table;
528 int idx = 0;
528 int ret; 529 int ret;
529 530
530 wl1251_debug(DEBUG_ACX, "acx beacon filter table"); 531 wl1251_debug(DEBUG_ACX, "acx beacon filter table");
@@ -535,8 +536,10 @@ int wl1251_acx_beacon_filter_table(struct wl1251 *wl)
535 goto out; 536 goto out;
536 } 537 }
537 538
538 ie_table->num_ie = 0; 539 /* configure default beacon pass-through rules */
539 memset(ie_table->table, 0, BEACON_FILTER_TABLE_MAX_SIZE); 540 ie_table->num_ie = 1;
541 ie_table->table[idx++] = BEACON_FILTER_IE_ID_CHANNEL_SWITCH_ANN;
542 ie_table->table[idx++] = BEACON_RULE_PASS_ON_APPEARANCE;
540 543
541 ret = wl1251_cmd_configure(wl, ACX_BEACON_FILTER_TABLE, 544 ret = wl1251_cmd_configure(wl, ACX_BEACON_FILTER_TABLE,
542 ie_table, sizeof(*ie_table)); 545 ie_table, sizeof(*ie_table));