summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/zd1211rw/zd_mac.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-02-08 19:12:12 -0500
committerDavid S. Miller <davem@davemloft.net>2012-02-08 19:12:12 -0500
commit64db880e7488a6d31363ad17c4c0590f27fd48e5 (patch)
treeb3705dea9d64b78f93db5f7bead545e5ee38b2aa /drivers/net/wireless/zd1211rw/zd_mac.c
parent5ca3b72c5da47d95b83857b768def6172fbc080a (diff)
parent7a73b08b50b075b114d0f608099e4634f9c73ae7 (diff)
downloadtalos-op-linux-64db880e7488a6d31363ad17c4c0590f27fd48e5.tar.gz
talos-op-linux-64db880e7488a6d31363ad17c4c0590f27fd48e5.zip
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Diffstat (limited to 'drivers/net/wireless/zd1211rw/zd_mac.c')
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index 0a70149df3fc..98a574a4a465 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -866,6 +866,14 @@ static int fill_ctrlset(struct zd_mac *mac,
ZD_ASSERT(frag_len <= 0xffff);
+ /*
+ * Firmware computes the duration itself (for all frames except PSPoll)
+ * and needs the field set to 0 at input, otherwise firmware messes up
+ * duration_id and sets bits 14 and 15 on.
+ */
+ if (!ieee80211_is_pspoll(hdr->frame_control))
+ hdr->duration_id = 0;
+
txrate = ieee80211_get_tx_rate(mac->hw, info);
cs->modulation = txrate->hw_value;
OpenPOWER on IntegriCloud