mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 03:21:32 +00:00
wl1251: Add acx command to set tbtt and dtim period
The dtim period obtained from the mac80211 is not set to the firmware. This patch implements the acx command to set correct tbtt and dtim value to the firmware. Signed-off-by: Vidhya Govindan <vidhya.govindan@nokia.com> Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Reviewed-by: Janne Ylalehto <janne.ylalehto@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
2410378a4c
commit
d531cf303f
@ -948,3 +948,31 @@ out:
|
||||
kfree(mem_conf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int wl1251_acx_wr_tbtt_and_dtim(struct wl1251 *wl, u16 tbtt, u8 dtim)
|
||||
{
|
||||
struct wl1251_acx_wr_tbtt_and_dtim *acx;
|
||||
int ret;
|
||||
|
||||
wl1251_debug(DEBUG_ACX, "acx tbtt and dtim");
|
||||
|
||||
acx = kzalloc(sizeof(*acx), GFP_KERNEL);
|
||||
if (!acx) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
acx->tbtt = tbtt;
|
||||
acx->dtim = dtim;
|
||||
|
||||
ret = wl1251_cmd_configure(wl, ACX_WR_TBTT_AND_DTIM,
|
||||
acx, sizeof(*acx));
|
||||
if (ret < 0) {
|
||||
wl1251_warning("failed to set tbtt and dtim: %d", ret);
|
||||
goto out;
|
||||
}
|
||||
|
||||
out:
|
||||
kfree(acx);
|
||||
return ret;
|
||||
}
|
||||
|
@ -1149,6 +1149,23 @@ struct wl1251_acx_mem_map {
|
||||
u32 num_rx_mem_blocks;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
|
||||
struct wl1251_acx_wr_tbtt_and_dtim {
|
||||
|
||||
struct acx_header header;
|
||||
|
||||
/* Time in TUs between two consecutive beacons */
|
||||
u16 tbtt;
|
||||
|
||||
/*
|
||||
* DTIM period
|
||||
* For BSS: Number of TBTTs in a DTIM period (range: 1-10)
|
||||
* For IBSS: value shall be set to 1
|
||||
*/
|
||||
u8 dtim;
|
||||
u8 padding;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/*************************************************************************
|
||||
|
||||
Host Interrupt Register (WiLink -> Host)
|
||||
@ -1304,5 +1321,6 @@ int wl1251_acx_statistics(struct wl1251 *wl, struct acx_statistics *stats);
|
||||
int wl1251_acx_tsf_info(struct wl1251 *wl, u64 *mactime);
|
||||
int wl1251_acx_rate_policies(struct wl1251 *wl);
|
||||
int wl1251_acx_mem_cfg(struct wl1251 *wl);
|
||||
int wl1251_acx_wr_tbtt_and_dtim(struct wl1251 *wl, u16 tbtt, u8 dtim);
|
||||
|
||||
#endif /* __WL1251_ACX_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user