wl1271: Remove busy-word checking
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>
Tue, 13 Oct 2009 09:47:47 +0000 (12:47 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 27 Oct 2009 20:48:10 +0000 (16:48 -0400)
Remove busy-word checking to work around an SPI bug. To reduce the
chance of chipset-busy scenarios, increment the number of fixed busy
words.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1271.h
drivers/net/wireless/wl12xx/wl1271_spi.c

index 648223f67b549b1134d899c398466d8d68ed7e9b..e0ebb1fb2adaf6d755a837ca3394c220468cbfd3 100644 (file)
@@ -115,9 +115,11 @@ enum {
 /*
  * FIXME: for the wl1271, a busy word count of 1 here will result in a more
  * optimal SPI interface. There is some SPI bug however, causing RXS time outs
- * with this mode occasionally on boot, so lets have two for now.
+ * with this mode occasionally on boot, so lets have three for now. A value of
+ * three should make sure, that the chipset will always be ready, though this
+ * will impact throughput and latencies slightly.
  */
-#define WL1271_BUSY_WORD_CNT 2
+#define WL1271_BUSY_WORD_CNT 3
 #define WL1271_BUSY_WORD_LEN (WL1271_BUSY_WORD_CNT * sizeof(u32))
 
 #define WL1271_ELP_HW_STATE_ASLEEP 0
index 4800fdfd2373fcd0d9ff6964d9a9cbc35581fd5c..3c5aa584574b896081f52a5fb22207598e50ae55 100644 (file)
@@ -294,9 +294,9 @@ void wl1271_spi_raw_read(struct wl1271 *wl, int addr, void *buf,
 
        spi_sync(wl->spi, &m);
 
-       /* Check busy words */
-       if (!(busy_buf[WL1271_BUSY_WORD_CNT - 1] & 0x1))
-               wl1271_spi_read_busy(wl, buf, len);
+       /* FIXME: Check busy words, removed due to SPI bug */
+       /* if (!(busy_buf[WL1271_BUSY_WORD_CNT - 1] & 0x1))
+          wl1271_spi_read_busy(wl, buf, len); */
 
        wl1271_dump(DEBUG_SPI, "spi_read cmd -> ", cmd, sizeof(*cmd));
        wl1271_dump(DEBUG_SPI, "spi_read buf <- ", buf, len);