aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/wl12xx/wl1271.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_acx.h1
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_tx.c8
4 files changed, 7 insertions, 10 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271.h b/drivers/net/wireless/wl12xx/wl1271.h
index 05eb29c847c6..0b4744db22ef 100644
--- a/drivers/net/wireless/wl12xx/wl1271.h
+++ b/drivers/net/wireless/wl12xx/wl1271.h
@@ -123,6 +123,8 @@ enum {
123#define WL1271_DEFAULT_BEACON_INT 100 123#define WL1271_DEFAULT_BEACON_INT 100
124#define WL1271_DEFAULT_DTIM_PERIOD 1 124#define WL1271_DEFAULT_DTIM_PERIOD 1
125 125
126#define ACX_TX_DESCRIPTORS 32
127
126enum wl1271_state { 128enum wl1271_state {
127 WL1271_STATE_OFF, 129 WL1271_STATE_OFF,
128 WL1271_STATE_ON, 130 WL1271_STATE_ON,
@@ -346,7 +348,7 @@ struct wl1271 {
346 struct work_struct filter_work; 348 struct work_struct filter_work;
347 349
348 /* Pending TX frames */ 350 /* Pending TX frames */
349 struct sk_buff *tx_frames[16]; 351 struct sk_buff *tx_frames[ACX_TX_DESCRIPTORS];
350 352
351 /* Security sequence number counters */ 353 /* Security sequence number counters */
352 u8 tx_security_last_seq; 354 u8 tx_security_last_seq;
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.h b/drivers/net/wireless/wl12xx/wl1271_acx.h
index 55850eb809ea..c1773459bf55 100644
--- a/drivers/net/wireless/wl12xx/wl1271_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_acx.h
@@ -170,7 +170,6 @@ enum {
170#define DP_RX_PACKET_RING_CHUNK_NUM 2 170#define DP_RX_PACKET_RING_CHUNK_NUM 2
171#define DP_TX_PACKET_RING_CHUNK_NUM 2 171#define DP_TX_PACKET_RING_CHUNK_NUM 2
172#define DP_TX_COMPLETE_TIME_OUT 20 172#define DP_TX_COMPLETE_TIME_OUT 20
173#define FW_TX_CMPLT_BLOCK_SIZE 16
174 173
175#define TX_MSDU_LIFETIME_MIN 0 174#define TX_MSDU_LIFETIME_MIN 0
176#define TX_MSDU_LIFETIME_MAX 3000 175#define TX_MSDU_LIFETIME_MAX 3000
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index 6e35fcf37e4f..0a0f2eacf400 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -1293,9 +1293,7 @@ static int __devinit wl1271_probe(struct spi_device *spi)
1293 wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET; 1293 wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET;
1294 wl->band = IEEE80211_BAND_2GHZ; 1294 wl->band = IEEE80211_BAND_2GHZ;
1295 1295
1296 /* We use the default power on sleep time until we know which chip 1296 for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
1297 * we're using */
1298 for (i = 0; i < FW_TX_CMPLT_BLOCK_SIZE; i++)
1299 wl->tx_frames[i] = NULL; 1297 wl->tx_frames[i] = NULL;
1300 1298
1301 spin_lock_init(&wl->wl_lock); 1299 spin_lock_init(&wl->wl_lock);
diff --git a/drivers/net/wireless/wl12xx/wl1271_tx.c b/drivers/net/wireless/wl12xx/wl1271_tx.c
index 1ad1bc3f152e..5d3aa4b26cf3 100644
--- a/drivers/net/wireless/wl12xx/wl1271_tx.c
+++ b/drivers/net/wireless/wl12xx/wl1271_tx.c
@@ -33,8 +33,7 @@
33static int wl1271_tx_id(struct wl1271 *wl, struct sk_buff *skb) 33static int wl1271_tx_id(struct wl1271 *wl, struct sk_buff *skb)
34{ 34{
35 int i; 35 int i;
36 36 for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
37 for (i = 0; i < FW_TX_CMPLT_BLOCK_SIZE; i++)
38 if (wl->tx_frames[i] == NULL) { 37 if (wl->tx_frames[i] == NULL) {
39 wl->tx_frames[i] = skb; 38 wl->tx_frames[i] = skb;
40 return i; 39 return i;
@@ -262,14 +261,13 @@ out:
262static void wl1271_tx_complete_packet(struct wl1271 *wl, 261static void wl1271_tx_complete_packet(struct wl1271 *wl,
263 struct wl1271_tx_hw_res_descr *result) 262 struct wl1271_tx_hw_res_descr *result)
264{ 263{
265
266 struct ieee80211_tx_info *info; 264 struct ieee80211_tx_info *info;
267 struct sk_buff *skb; 265 struct sk_buff *skb;
268 u16 seq; 266 u16 seq;
269 int id = result->id; 267 int id = result->id;
270 268
271 /* check for id legality */ 269 /* check for id legality */
272 if (id >= TX_HW_RESULT_QUEUE_LEN || wl->tx_frames[id] == NULL) { 270 if (id >= ACX_TX_DESCRIPTORS || wl->tx_frames[id] == NULL) {
273 wl1271_warning("TX result illegal id: %d", id); 271 wl1271_warning("TX result illegal id: %d", id);
274 return; 272 return;
275 } 273 }
@@ -382,7 +380,7 @@ void wl1271_tx_flush(struct wl1271 *wl)
382 ieee80211_tx_status(wl->hw, skb); 380 ieee80211_tx_status(wl->hw, skb);
383 } 381 }
384 382
385 for (i = 0; i < FW_TX_CMPLT_BLOCK_SIZE; i++) 383 for (i = 0; i < ACX_TX_DESCRIPTORS; i++)
386 if (wl->tx_frames[i] != NULL) { 384 if (wl->tx_frames[i] != NULL) {
387 skb = wl->tx_frames[i]; 385 skb = wl->tx_frames[i];
388 info = IEEE80211_SKB_CB(skb); 386 info = IEEE80211_SKB_CB(skb);