diff options
author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2012-01-10 09:54:10 +0530 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2012-01-12 13:36:37 +0200 |
commit | 8232736dabd2a0310f76944fa7af0542fe3ded4f (patch) | |
tree | c7837b789f7e55ec1b00b0b8374362f0992727e2 /drivers/net/wireless/ath/ath6kl/main.c | |
parent | cbec267a5143f70ece4069d18889a442bcb3365b (diff) | |
download | linux-8232736dabd2a0310f76944fa7af0542fe3ded4f.tar.gz linux-8232736dabd2a0310f76944fa7af0542fe3ded4f.tar.bz2 linux-8232736dabd2a0310f76944fa7af0542fe3ded4f.zip |
ath6kl: Fix listen interval handling
This patch addresses a few problems with the commit:
"ath6kl: Implement support for listen interval from userspace"
* The debugfs file required for reading/writing the listen interval
wasn't created. Fix this.
* The interface index was being hardcoded to zero. Fix this.
* Two separate parameters, "listen_interval_time and listen_interval_beacons"
were being used. This fails to work as expected because the FW assigns
higher precedence to "listen_interval_beacons" and "listen_interval_time"
ends up being never used at all.
To handle this, fix the host driver to exclusively use listen interval
based on units of beacon intervals.
To set the listen interval, a user would now do something like this:
echo "10" > /sys/kernel/debug/ieee80211/*/ath6kl/listen_interval
kvalo: fix two checkpatch warnings
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/main.c')
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/main.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/main.c b/drivers/net/wireless/ath/ath6kl/main.c index 8742eaa78186..4c26572214c7 100644 --- a/drivers/net/wireless/ath/ath6kl/main.c +++ b/drivers/net/wireless/ath/ath6kl/main.c @@ -584,10 +584,11 @@ void ath6kl_connect_event(struct ath6kl_vif *vif, u16 channel, u8 *bssid, memcpy(vif->bssid, bssid, sizeof(vif->bssid)); vif->bss_ch = channel; - if ((vif->nw_type == INFRA_NETWORK)) + if ((vif->nw_type == INFRA_NETWORK)) { + ar->listen_intvl_b = listen_int; ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, - ar->listen_intvl_t, - ar->listen_intvl_b); + 0, ar->listen_intvl_b); + } netif_wake_queue(vif->ndev); |