diff options
author | Arik Nemtsov <arik@wizery.com> | 2011-06-27 22:06:34 +0300 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-07-05 21:51:05 +0300 |
commit | 097f882153f0ec13617074fa3bdb683b8215e20c (patch) | |
tree | 53554edb12af51ce9d658e9bfd37704d241a787c | |
parent | 6cfa5cffde202cabbf0d64c9225ce89f7f7a0d0f (diff) | |
download | op-kernel-dev-097f882153f0ec13617074fa3bdb683b8215e20c.zip op-kernel-dev-097f882153f0ec13617074fa3bdb683b8215e20c.tar.gz |
wl12xx: always initialize AP-mode max power level
Sometimes we only get the Tx power level via op->config when the FW is
off. Record the received power level when this happens and use it to
initialize the firmware during boot.
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
-rw-r--r-- | drivers/net/wireless/wl12xx/acx.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/init.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/main.c | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.c b/drivers/net/wireless/wl12xx/acx.c index 2f5207a..7e33f1f 100644 --- a/drivers/net/wireless/wl12xx/acx.c +++ b/drivers/net/wireless/wl12xx/acx.c @@ -90,7 +90,7 @@ int wl1271_acx_tx_power(struct wl1271 *wl, int power) struct acx_current_tx_power *acx; int ret; - wl1271_debug(DEBUG_ACX, "acx dot11_cur_tx_pwr"); + wl1271_debug(DEBUG_ACX, "acx dot11_cur_tx_pwr %d", power); if (power < 0 || power > 25) return -EINVAL; diff --git a/drivers/net/wireless/wl12xx/init.c b/drivers/net/wireless/wl12xx/init.c index ebfde94..c3e9a2e 100644 --- a/drivers/net/wireless/wl12xx/init.c +++ b/drivers/net/wireless/wl12xx/init.c @@ -455,6 +455,11 @@ static int wl1271_ap_hw_init(struct wl1271 *wl) if (ret < 0) return ret; + /* initialize Tx power */ + ret = wl1271_acx_tx_power(wl, wl->power_level); + if (ret < 0) + return ret; + return 0; } diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c index b381e69..526b1ac 100644 --- a/drivers/net/wireless/wl12xx/main.c +++ b/drivers/net/wireless/wl12xx/main.c @@ -2278,6 +2278,9 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed) wl->channel = channel; } + if ((changed & IEEE80211_CONF_CHANGE_POWER)) + wl->power_level = conf->power_level; + goto out; } |