git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
wl1251: add powersave exit logic for transfers
[pandora-kernel.git]
/
drivers
/
net
/
wireless
/
wl1251
/
rx.c
diff --git
a/drivers/net/wireless/wl1251/rx.c
b/drivers/net/wireless/wl1251/rx.c
index
c1b3b3f
..
79a119d
100644
(file)
--- a/
drivers/net/wireless/wl1251/rx.c
+++ b/
drivers/net/wireless/wl1251/rx.c
@@
-83,7
+83,7
@@
static void wl1251_rx_status(struct wl1251 *wl,
status->flag |= RX_FLAG_MACTIME_MPDU;
status->flag |= RX_FLAG_MACTIME_MPDU;
- if (
desc->flags & RX_DESC_ENCRYPTION_MASK
) {
+ if (
!wl->monitor_present && (desc->flags & RX_DESC_ENCRYPTION_MASK)
) {
status->flag |= RX_FLAG_IV_STRIPPED | RX_FLAG_MMIC_STRIPPED;
if (likely(!(desc->flags & RX_DESC_DECRYPT_FAIL)))
status->flag |= RX_FLAG_IV_STRIPPED | RX_FLAG_MMIC_STRIPPED;
if (likely(!(desc->flags & RX_DESC_DECRYPT_FAIL)))
@@
-179,8
+179,8
@@
static void wl1251_rx_body(struct wl1251 *wl,
rx_buffer = skb_put(skb, length);
wl1251_mem_read(wl, rx_packet_ring_addr, rx_buffer, length);
rx_buffer = skb_put(skb, length);
wl1251_mem_read(wl, rx_packet_ring_addr, rx_buffer, length);
- /* The actual leng
ht
doesn't include the target's alignment */
- skb
->len = desc->length - PLCP_HEADER_LENGTH
;
+ /* The actual leng
th
doesn't include the target's alignment */
+ skb
_trim(skb, desc->length - PLCP_HEADER_LENGTH)
;
fc = (u16 *)skb->data;
fc = (u16 *)skb->data;
@@
-194,6
+194,8
@@
static void wl1251_rx_body(struct wl1251 *wl,
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
ieee80211_rx_ni(wl->hw, skb);
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
ieee80211_rx_ni(wl->hw, skb);
+
+ wl1251_update_rate(wl, length);
}
static void wl1251_rx_ack(struct wl1251 *wl)
}
static void wl1251_rx_ack(struct wl1251 *wl)