Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 184463
b: refs/heads/master
c: 12419cc
h: refs/heads/master
i:
  184461: 10a9d3f
  184459: 395d424
  184455: 48d89d4
  184447: 74163b7
v: v3
  • Loading branch information
Luciano Coelho authored and John W. Linville committed Feb 19, 2010
1 parent 656a252 commit 3f13afd
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7b21b6f8216494ab6b8b4dc9d15e48051a0f0a66
refs/heads/master: 12419cce88fa591a846a542d35cff43b69d9e271
8 changes: 4 additions & 4 deletions trunk/drivers/net/wireless/wl12xx/wl1271_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ static int wl1271_init_hwenc_config(struct wl1271 *wl)
return 0;
}

static int wl1271_init_templates_config(struct wl1271 *wl)
int wl1271_init_templates_config(struct wl1271 *wl)
{
int ret;

Expand Down Expand Up @@ -113,7 +113,7 @@ static int wl1271_init_rx_config(struct wl1271 *wl, u32 config, u32 filter)
return 0;
}

static int wl1271_init_phy_config(struct wl1271 *wl)
int wl1271_init_phy_config(struct wl1271 *wl)
{
int ret;

Expand Down Expand Up @@ -156,7 +156,7 @@ static int wl1271_init_beacon_filter(struct wl1271 *wl)
return 0;
}

static int wl1271_init_pta(struct wl1271 *wl)
int wl1271_init_pta(struct wl1271 *wl)
{
int ret;

Expand All @@ -171,7 +171,7 @@ static int wl1271_init_pta(struct wl1271 *wl)
return 0;
}

static int wl1271_init_energy_detection(struct wl1271 *wl)
int wl1271_init_energy_detection(struct wl1271 *wl)
{
int ret;

Expand Down
4 changes: 4 additions & 0 deletions trunk/drivers/net/wireless/wl12xx/wl1271_init.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@
#include "wl1271.h"

int wl1271_hw_init_power_auth(struct wl1271 *wl);
int wl1271_init_templates_config(struct wl1271 *wl);
int wl1271_init_phy_config(struct wl1271 *wl);
int wl1271_init_pta(struct wl1271 *wl);
int wl1271_init_energy_detection(struct wl1271 *wl);
int wl1271_hw_init(struct wl1271 *wl);

#endif
85 changes: 78 additions & 7 deletions trunk/drivers/net/wireless/wl12xx/wl1271_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,9 @@ static void wl1271_conf_init(struct wl1271 *wl)

static int wl1271_plt_init(struct wl1271 *wl)
{
int ret;
struct conf_tx_ac_category *conf_ac;
struct conf_tx_tid *conf_tid;
int ret, i;

ret = wl1271_cmd_general_parms(wl);
if (ret < 0)
Expand All @@ -275,15 +277,89 @@ static int wl1271_plt_init(struct wl1271 *wl)
if (ret < 0)
return ret;

ret = wl1271_init_templates_config(wl);
if (ret < 0)
return ret;

ret = wl1271_acx_init_mem_config(wl);
if (ret < 0)
return ret;

/* PHY layer config */
ret = wl1271_init_phy_config(wl);
if (ret < 0)
goto out_free_memmap;

ret = wl1271_acx_dco_itrim_params(wl);
if (ret < 0)
goto out_free_memmap;

/* Initialize connection monitoring thresholds */
ret = wl1271_acx_conn_monit_params(wl);
if (ret < 0)
goto out_free_memmap;

/* Bluetooth WLAN coexistence */
ret = wl1271_init_pta(wl);
if (ret < 0)
goto out_free_memmap;

/* Energy detection */
ret = wl1271_init_energy_detection(wl);
if (ret < 0)
goto out_free_memmap;

/* Default fragmentation threshold */
ret = wl1271_acx_frag_threshold(wl);
if (ret < 0)
goto out_free_memmap;

/* Default TID configuration */
for (i = 0; i < wl->conf.tx.tid_conf_count; i++) {
conf_tid = &wl->conf.tx.tid_conf[i];
ret = wl1271_acx_tid_cfg(wl, conf_tid->queue_id,
conf_tid->channel_type,
conf_tid->tsid,
conf_tid->ps_scheme,
conf_tid->ack_policy,
conf_tid->apsd_conf[0],
conf_tid->apsd_conf[1]);
if (ret < 0)
goto out_free_memmap;
}

/* Default AC configuration */
for (i = 0; i < wl->conf.tx.ac_conf_count; i++) {
conf_ac = &wl->conf.tx.ac_conf[i];
ret = wl1271_acx_ac_cfg(wl, conf_ac->ac, conf_ac->cw_min,
conf_ac->cw_max, conf_ac->aifsn,
conf_ac->tx_op_limit);
if (ret < 0)
goto out_free_memmap;
}

/* Enable data path */
ret = wl1271_cmd_data_path(wl, 1);
if (ret < 0)
return ret;
goto out_free_memmap;

/* Configure for CAM power saving (ie. always active) */
ret = wl1271_acx_sleep_auth(wl, WL1271_PSM_CAM);
if (ret < 0)
goto out_free_memmap;

/* configure PM */
ret = wl1271_acx_pm_config(wl);
if (ret < 0)
goto out_free_memmap;

return 0;

out_free_memmap:
kfree(wl->target_mem_map);
wl->target_mem_map = NULL;

return ret;
}

static void wl1271_disable_interrupts(struct wl1271 *wl)
Expand Down Expand Up @@ -653,11 +729,6 @@ int wl1271_plt_start(struct wl1271 *wl)
if (ret < 0)
goto irq_disable;

/* Make sure power saving is disabled */
ret = wl1271_acx_sleep_auth(wl, WL1271_PSM_CAM);
if (ret < 0)
goto irq_disable;

wl->state = WL1271_STATE_PLT;
wl1271_notice("firmware booted in PLT mode (%s)",
wl->chip.fw_ver);
Expand Down

0 comments on commit 3f13afd

Please sign in to comment.