wl12xx: mcp2.5 - add config_ps acx
mcp2.5 uses this acx to configure the fw only once, rather than passing the params in every enter psm command. Signed-off-by: Eliad Peller <eliad@wizery.com> Reviewed-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
parent
3ad97fbcc2
commit
ee60833a4f
|
@ -1476,3 +1476,33 @@ out:
|
|||
kfree(acx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int wl1271_acx_config_ps(struct wl1271 *wl)
|
||||
{
|
||||
struct wl1271_acx_config_ps *config_ps;
|
||||
int ret;
|
||||
|
||||
wl1271_debug(DEBUG_ACX, "acx config ps");
|
||||
|
||||
config_ps = kzalloc(sizeof(*config_ps), GFP_KERNEL);
|
||||
if (!config_ps) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
config_ps->exit_retries = wl->conf.conn.psm_exit_retries;
|
||||
config_ps->enter_retries = wl->conf.conn.psm_entry_retries;
|
||||
config_ps->null_data_rate = cpu_to_le32(wl->basic_rate);
|
||||
|
||||
ret = wl1271_cmd_configure(wl, ACX_CONFIG_PS, config_ps,
|
||||
sizeof(*config_ps));
|
||||
|
||||
if (ret < 0) {
|
||||
wl1271_warning("acx config ps failed: %d", ret);
|
||||
goto out;
|
||||
}
|
||||
|
||||
out:
|
||||
kfree(config_ps);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -1136,6 +1136,15 @@ struct wl1271_acx_max_tx_retry {
|
|||
u8 padding_1[2];
|
||||
} __packed;
|
||||
|
||||
struct wl1271_acx_config_ps {
|
||||
struct acx_header header;
|
||||
|
||||
u8 exit_retries;
|
||||
u8 enter_retries;
|
||||
u8 padding[2];
|
||||
__le32 null_data_rate;
|
||||
} __packed;
|
||||
|
||||
enum {
|
||||
ACX_WAKE_UP_CONDITIONS = 0x0002,
|
||||
ACX_MEM_CFG = 0x0003,
|
||||
|
@ -1200,6 +1209,7 @@ enum {
|
|||
DOT11_RTS_THRESHOLD = 0x1013,
|
||||
DOT11_GROUP_ADDRESS_TBL = 0x1014,
|
||||
ACX_PM_CONFIG = 0x1016,
|
||||
ACX_CONFIG_PS = 0x1017,
|
||||
|
||||
MAX_DOT11_IE = DOT11_GROUP_ADDRESS_TBL,
|
||||
|
||||
|
@ -1269,5 +1279,6 @@ int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn,
|
|||
bool enable);
|
||||
int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime);
|
||||
int wl1271_acx_max_tx_retry(struct wl1271 *wl);
|
||||
int wl1271_acx_config_ps(struct wl1271 *wl);
|
||||
|
||||
#endif /* __WL1271_ACX_H__ */
|
||||
|
|
|
@ -959,6 +959,14 @@ struct conf_conn_settings {
|
|||
*/
|
||||
u8 psm_entry_retries;
|
||||
|
||||
/*
|
||||
* Specifies the maximum number of times to try PSM exit if it fails
|
||||
* (if sending the appropriate null-func message fails.)
|
||||
*
|
||||
* Range 0 - 255
|
||||
*/
|
||||
u8 psm_exit_retries;
|
||||
|
||||
/*
|
||||
* Specifies the maximum number of times to try transmit the PSM entry
|
||||
* null-func frame for each PSM entry attempt
|
||||
|
|
|
@ -256,6 +256,7 @@ static struct conf_drv_settings default_conf = {
|
|||
.bet_enable = CONF_BET_MODE_ENABLE,
|
||||
.bet_max_consecutive = 10,
|
||||
.psm_entry_retries = 5,
|
||||
.psm_exit_retries = 255,
|
||||
.psm_entry_nullfunc_retries = 3,
|
||||
.psm_entry_hangover_period = 1,
|
||||
.keep_alive_interval = 55000,
|
||||
|
|
Loading…
Reference in New Issue