wl1271: Optimized RX path packet retrieval
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>
Thu, 18 Feb 2010 11:25:48 +0000 (13:25 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 19 Feb 2010 20:52:45 +0000 (15:52 -0500)
Instead of acking RX packets read from the FW once all (of several possible)
buffered packets are retrieved, ack packets one by one as they are read. This
enables the FW to start receiving more packets from the network while the
host read operation is still ongoing.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271_rx.c

index ca645f38109b531dc805efac08938908f2054042..e8eee883848fe5432b1496e2b2ce78cbf2c86015 100644 (file)
@@ -218,7 +218,7 @@ void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status)
 
                wl->rx_counter++;
                drv_rx_counter = wl->rx_counter & NUM_RX_PKT_DESC_MOD_MASK;
+               wl1271_spi_write32(wl, RX_DRIVER_COUNTER_ADDRESS,
+                                  wl->rx_counter);
        }
-
-       wl1271_spi_write32(wl, RX_DRIVER_COUNTER_ADDRESS, wl->rx_counter);
 }