Skip to content

Commit

Permalink
wl1251: Add acx command to set tbtt and dtim period
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Vidhya Govindan authored and John W. Linville committed Nov 18, 2009
1 parent 2410378 commit d531cf3
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
28 changes: 28 additions & 0 deletions drivers/net/wireless/wl12xx/wl1251_acx.c
Original file line number Diff line number Diff line change
Expand Up @@ -948,3 +948,31 @@ int wl1251_acx_mem_cfg(struct wl1251 *wl)
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;
}
18 changes: 18 additions & 0 deletions drivers/net/wireless/wl12xx/wl1251_acx.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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__ */

0 comments on commit d531cf3

Please sign in to comment.