wl1251: add powersave exit logic for transfers
[pandora-kernel.git] / drivers / net / wireless / wl1251 / rx.c
index dc7ad45..79a119d 100644 (file)
@@ -180,14 +180,12 @@ static void wl1251_rx_body(struct wl1251 *wl,
        wl1251_mem_read(wl, rx_packet_ring_addr, rx_buffer, length);
 
        /* The actual length doesn't include the target's alignment */
-       skb->len = desc->length  - PLCP_HEADER_LENGTH;
+       skb_trim(skb, desc->length - PLCP_HEADER_LENGTH);
 
        fc = (u16 *)skb->data;
 
        if ((*fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON)
                beacon = 1;
-       else
-               wl->last_io_jiffies = jiffies;
 
        wl1251_rx_status(wl, desc, &status, beacon);
 
@@ -196,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);
+
+       wl1251_update_rate(wl, length);
 }
 
 static void wl1251_rx_ack(struct wl1251 *wl)