diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/rx.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/rx.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/rx.c b/drivers/net/wireless/wl12xx/rx.c index 3d13d7a83ea1..919b59f00301 100644 --- a/drivers/net/wireless/wl12xx/rx.c +++ b/drivers/net/wireless/wl12xx/rx.c | |||
@@ -129,7 +129,8 @@ static int wl1271_rx_handle_data(struct wl1271 *wl, u8 *data, u32 length) | |||
129 | 129 | ||
130 | skb_trim(skb, skb->len - desc->pad_len); | 130 | skb_trim(skb, skb->len - desc->pad_len); |
131 | 131 | ||
132 | ieee80211_rx_ni(wl->hw, skb); | 132 | skb_queue_tail(&wl->deferred_rx_queue, skb); |
133 | ieee80211_queue_work(wl->hw, &wl->netstack_work); | ||
133 | 134 | ||
134 | return 0; | 135 | return 0; |
135 | } | 136 | } |
@@ -198,7 +199,13 @@ void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_common_status *status) | |||
198 | pkt_offset += pkt_length; | 199 | pkt_offset += pkt_length; |
199 | } | 200 | } |
200 | } | 201 | } |
201 | wl1271_write32(wl, RX_DRIVER_COUNTER_ADDRESS, wl->rx_counter); | 202 | |
203 | /* | ||
204 | * Write the driver's packet counter to the FW. This is only required | ||
205 | * for older hardware revisions | ||
206 | */ | ||
207 | if (wl->quirks & WL12XX_QUIRK_END_OF_TRANSACTION) | ||
208 | wl1271_write32(wl, RX_DRIVER_COUNTER_ADDRESS, wl->rx_counter); | ||
202 | } | 209 | } |
203 | 210 | ||
204 | void wl1271_set_default_filters(struct wl1271 *wl) | 211 | void wl1271_set_default_filters(struct wl1271 *wl) |