]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/wireless/wl12xx/wl1271_acx.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[net-next-2.6.git] / drivers / net / wireless / wl12xx / wl1271_acx.c
index 308782421fce5afb777b22caa755e2c395e6fc9f..adaa3f2485c3f657464c41c51de1972a1f459766 100644 (file)
@@ -32,7 +32,6 @@
 #include "wl1271.h"
 #include "wl12xx_80211.h"
 #include "wl1271_reg.h"
-#include "wl1271_spi.h"
 #include "wl1271_ps.h"
 
 int wl1271_acx_wake_up_conditions(struct wl1271 *wl)
@@ -137,12 +136,7 @@ int wl1271_acx_tx_power(struct wl1271 *wl, int power)
                goto out;
        }
 
-       /*
-        * FIXME: This is a workaround needed while we don't the correct
-        * calibration, to avoid distortions
-        */
-       /* acx->current_tx_power = power * 10; */
-       acx->current_tx_power = 120;
+       acx->current_tx_power = power * 10;
 
        ret = wl1271_cmd_configure(wl, DOT11_CUR_TX_PWR, acx, sizeof(*acx));
        if (ret < 0) {
@@ -541,7 +535,7 @@ out:
 }
 
 
-int wl1271_acx_sg_enable(struct wl1271 *wl)
+int wl1271_acx_sg_enable(struct wl1271 *wl, bool enable)
 {
        struct acx_bt_wlan_coex *pta;
        int ret;
@@ -554,7 +548,10 @@ int wl1271_acx_sg_enable(struct wl1271 *wl)
                goto out;
        }
 
-       pta->enable = SG_ENABLE;
+       if (enable)
+               pta->enable = wl->conf.sg.state;
+       else
+               pta->enable = CONF_SG_DISABLE;
 
        ret = wl1271_cmd_configure(wl, ACX_SG_ENABLE, pta, sizeof(*pta));
        if (ret < 0) {
@@ -571,7 +568,7 @@ int wl1271_acx_sg_cfg(struct wl1271 *wl)
 {
        struct acx_bt_wlan_coex_param *param;
        struct conf_sg_settings *c = &wl->conf.sg;
-       int ret;
+       int i, ret;
 
        wl1271_debug(DEBUG_ACX, "acx sg cfg");
 
@@ -582,19 +579,9 @@ int wl1271_acx_sg_cfg(struct wl1271 *wl)
        }
 
        /* BT-WLAN coext parameters */
-       param->per_threshold = cpu_to_le32(c->per_threshold);
-       param->max_scan_compensation_time =
-               cpu_to_le32(c->max_scan_compensation_time);
-       param->nfs_sample_interval = cpu_to_le16(c->nfs_sample_interval);
-       param->load_ratio = c->load_ratio;
-       param->auto_ps_mode = c->auto_ps_mode;
-       param->probe_req_compensation = c->probe_req_compensation;
-       param->scan_window_compensation = c->scan_window_compensation;
-       param->antenna_config = c->antenna_config;
-       param->beacon_miss_threshold = c->beacon_miss_threshold;
-       param->rate_adaptation_threshold =
-               cpu_to_le32(c->rate_adaptation_threshold);
-       param->rate_adaptation_snr = c->rate_adaptation_snr;
+       for (i = 0; i < CONF_SG_PARAMS_MAX; i++)
+               param->params[i] = c->params[i];
+       param->param_idx = CONF_SG_PARAMS_ALL;
 
        ret = wl1271_cmd_configure(wl, ACX_SG_CFG, param, sizeof(*param));
        if (ret < 0) {