aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-04-18 07:15:26 -0400
committerLuciano Coelho <coelho@ti.com>2011-05-02 03:31:18 -0400
commitc45a85b5a3c0ca841a7ffc700bdece8ee01486be (patch)
tree64956d8baafc9e746ca22d7d2162f48d5d046066
parent70f474241b3d5fb633635a2ce39ea9da4afeea6c (diff)
wl12xx: AP-mode - reconfigure templates after basic rates change
When there's a change in the basic rates of the AP, reconfigure relevant templates with the new rates. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
-rw-r--r--drivers/net/wireless/wl12xx/init.c7
-rw-r--r--drivers/net/wireless/wl12xx/init.h1
-rw-r--r--drivers/net/wireless/wl12xx/main.c4
3 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/init.c b/drivers/net/wireless/wl12xx/init.c
index 5d0ecd2018bf..b1242a6de27b 100644
--- a/drivers/net/wireless/wl12xx/init.c
+++ b/drivers/net/wireless/wl12xx/init.c
@@ -443,7 +443,7 @@ static int wl1271_ap_hw_init(struct wl1271 *wl)
443 return 0; 443 return 0;
444} 444}
445 445
446static int wl1271_ap_hw_init_post_mem(struct wl1271 *wl) 446int wl1271_ap_init_templates(struct wl1271 *wl)
447{ 447{
448 int ret; 448 int ret;
449 449
@@ -470,6 +470,11 @@ static int wl1271_ap_hw_init_post_mem(struct wl1271 *wl)
470 return 0; 470 return 0;
471} 471}
472 472
473static int wl1271_ap_hw_init_post_mem(struct wl1271 *wl)
474{
475 return wl1271_ap_init_templates(wl);
476}
477
473int wl1271_init_ap_rates(struct wl1271 *wl) 478int wl1271_init_ap_rates(struct wl1271 *wl)
474{ 479{
475 int i, ret; 480 int i, ret;
diff --git a/drivers/net/wireless/wl12xx/init.h b/drivers/net/wireless/wl12xx/init.h
index 0dd2414a30d1..3a3c230fd292 100644
--- a/drivers/net/wireless/wl12xx/init.h
+++ b/drivers/net/wireless/wl12xx/init.h
@@ -34,5 +34,6 @@ int wl1271_init_energy_detection(struct wl1271 *wl);
34int wl1271_chip_specific_init(struct wl1271 *wl); 34int wl1271_chip_specific_init(struct wl1271 *wl);
35int wl1271_hw_init(struct wl1271 *wl); 35int wl1271_hw_init(struct wl1271 *wl);
36int wl1271_init_ap_rates(struct wl1271 *wl); 36int wl1271_init_ap_rates(struct wl1271 *wl);
37int wl1271_ap_init_templates(struct wl1271 *wl);
37 38
38#endif 39#endif
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index e9d4cf48ba35..433bc035741a 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -2503,6 +2503,10 @@ static void wl1271_bss_info_changed_ap(struct wl1271 *wl,
2503 wl1271_error("AP rate policy change failed %d", ret); 2503 wl1271_error("AP rate policy change failed %d", ret);
2504 goto out; 2504 goto out;
2505 } 2505 }
2506
2507 ret = wl1271_ap_init_templates(wl);
2508 if (ret < 0)
2509 goto out;
2506 } 2510 }
2507 2511
2508 ret = wl1271_bss_beacon_info_changed(wl, vif, bss_conf, changed); 2512 ret = wl1271_bss_beacon_info_changed(wl, vif, bss_conf, changed);