diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx')
25 files changed, 30 insertions, 71 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251.h b/drivers/net/wireless/wl12xx/wl1251.h index 6b942a28e6a5..e113d4c1fb35 100644 --- a/drivers/net/wireless/wl12xx/wl1251.h +++ b/drivers/net/wireless/wl12xx/wl1251.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008-2009 Nokia Corporation | 5 | * Copyright (C) 2008-2009 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
@@ -274,6 +272,8 @@ struct wl1251 { | |||
274 | int irq; | 272 | int irq; |
275 | bool use_eeprom; | 273 | bool use_eeprom; |
276 | 274 | ||
275 | spinlock_t wl_lock; | ||
276 | |||
277 | enum wl1251_state state; | 277 | enum wl1251_state state; |
278 | struct mutex mutex; | 278 | struct mutex mutex; |
279 | 279 | ||
@@ -401,7 +401,8 @@ void wl1251_disable_interrupts(struct wl1251 *wl); | |||
401 | 401 | ||
402 | #define WL1251_DEFAULT_POWER_LEVEL 20 | 402 | #define WL1251_DEFAULT_POWER_LEVEL 20 |
403 | 403 | ||
404 | #define WL1251_TX_QUEUE_MAX_LENGTH 20 | 404 | #define WL1251_TX_QUEUE_LOW_WATERMARK 10 |
405 | #define WL1251_TX_QUEUE_HIGH_WATERMARK 25 | ||
405 | 406 | ||
406 | #define WL1251_DEFAULT_BEACON_INT 100 | 407 | #define WL1251_DEFAULT_BEACON_INT 100 |
407 | #define WL1251_DEFAULT_DTIM_PERIOD 1 | 408 | #define WL1251_DEFAULT_DTIM_PERIOD 1 |
diff --git a/drivers/net/wireless/wl12xx/wl1251_acx.h b/drivers/net/wireless/wl12xx/wl1251_acx.h index a8845b8f2451..c7cc5c1e8a75 100644 --- a/drivers/net/wireless/wl12xx/wl1251_acx.h +++ b/drivers/net/wireless/wl12xx/wl1251_acx.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_boot.c b/drivers/net/wireless/wl12xx/wl1251_boot.c index 5e65f47fda8a..468b47b0328a 100644 --- a/drivers/net/wireless/wl12xx/wl1251_boot.c +++ b/drivers/net/wireless/wl12xx/wl1251_boot.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2008 Nokia Corporation | 4 | * Copyright (C) 2008 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_boot.h b/drivers/net/wireless/wl12xx/wl1251_boot.h index 90063697e8f2..7661bc5e4662 100644 --- a/drivers/net/wireless/wl12xx/wl1251_boot.h +++ b/drivers/net/wireless/wl12xx/wl1251_boot.h | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2008 Nokia Corporation | 4 | * Copyright (C) 2008 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_cmd.h b/drivers/net/wireless/wl12xx/wl1251_cmd.h index 60d7e522486c..e5c74c631374 100644 --- a/drivers/net/wireless/wl12xx/wl1251_cmd.h +++ b/drivers/net/wireless/wl12xx/wl1251_cmd.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_debugfs.c b/drivers/net/wireless/wl12xx/wl1251_debugfs.c index 5e4465ac08fa..6ffe4cd58561 100644 --- a/drivers/net/wireless/wl12xx/wl1251_debugfs.c +++ b/drivers/net/wireless/wl12xx/wl1251_debugfs.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2009 Nokia Corporation | 4 | * Copyright (C) 2009 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_debugfs.h b/drivers/net/wireless/wl12xx/wl1251_debugfs.h index 6dc3d080853c..b3417c02a218 100644 --- a/drivers/net/wireless/wl12xx/wl1251_debugfs.h +++ b/drivers/net/wireless/wl12xx/wl1251_debugfs.h | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2009 Nokia Corporation | 4 | * Copyright (C) 2009 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_event.c b/drivers/net/wireless/wl12xx/wl1251_event.c index e093a1c5a205..54223556b308 100644 --- a/drivers/net/wireless/wl12xx/wl1251_event.c +++ b/drivers/net/wireless/wl12xx/wl1251_event.c | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
@@ -36,9 +34,7 @@ static int wl1251_event_scan_complete(struct wl1251 *wl, | |||
36 | mbox->scheduled_scan_channels); | 34 | mbox->scheduled_scan_channels); |
37 | 35 | ||
38 | if (wl->scanning) { | 36 | if (wl->scanning) { |
39 | mutex_unlock(&wl->mutex); | ||
40 | ieee80211_scan_completed(wl->hw, false); | 37 | ieee80211_scan_completed(wl->hw, false); |
41 | mutex_lock(&wl->mutex); | ||
42 | wl1251_debug(DEBUG_MAC80211, "mac80211 hw scan completed"); | 38 | wl1251_debug(DEBUG_MAC80211, "mac80211 hw scan completed"); |
43 | wl->scanning = false; | 39 | wl->scanning = false; |
44 | } | 40 | } |
diff --git a/drivers/net/wireless/wl12xx/wl1251_event.h b/drivers/net/wireless/wl12xx/wl1251_event.h index ec456474a842..30eb5d150bf7 100644 --- a/drivers/net/wireless/wl12xx/wl1251_event.h +++ b/drivers/net/wireless/wl12xx/wl1251_event.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_init.c b/drivers/net/wireless/wl12xx/wl1251_init.c index b538bdd7b320..c5daec05d9ee 100644 --- a/drivers/net/wireless/wl12xx/wl1251_init.c +++ b/drivers/net/wireless/wl12xx/wl1251_init.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2009 Nokia Corporation | 4 | * Copyright (C) 2009 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_init.h b/drivers/net/wireless/wl12xx/wl1251_init.h index 269cefb3e7d4..543f17582ead 100644 --- a/drivers/net/wireless/wl12xx/wl1251_init.h +++ b/drivers/net/wireless/wl12xx/wl1251_init.h | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2009 Nokia Corporation | 4 | * Copyright (C) 2009 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_io.c b/drivers/net/wireless/wl12xx/wl1251_io.c index f1c232e0887f..ad6ca68b303f 100644 --- a/drivers/net/wireless/wl12xx/wl1251_io.c +++ b/drivers/net/wireless/wl12xx/wl1251_io.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2008 Nokia Corporation | 4 | * Copyright (C) 2008 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index c81e95b45c14..faf221ca3f41 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2008-2009 Nokia Corporation | 4 | * Copyright (C) 2008-2009 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
@@ -377,6 +375,7 @@ out: | |||
377 | static int wl1251_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) | 375 | static int wl1251_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) |
378 | { | 376 | { |
379 | struct wl1251 *wl = hw->priv; | 377 | struct wl1251 *wl = hw->priv; |
378 | unsigned long flags; | ||
380 | 379 | ||
381 | skb_queue_tail(&wl->tx_queue, skb); | 380 | skb_queue_tail(&wl->tx_queue, skb); |
382 | 381 | ||
@@ -391,16 +390,13 @@ static int wl1251_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
391 | * The workqueue is slow to process the tx_queue and we need stop | 390 | * The workqueue is slow to process the tx_queue and we need stop |
392 | * the queue here, otherwise the queue will get too long. | 391 | * the queue here, otherwise the queue will get too long. |
393 | */ | 392 | */ |
394 | if (skb_queue_len(&wl->tx_queue) >= WL1251_TX_QUEUE_MAX_LENGTH) { | 393 | if (skb_queue_len(&wl->tx_queue) >= WL1251_TX_QUEUE_HIGH_WATERMARK) { |
395 | wl1251_debug(DEBUG_TX, "op_tx: tx_queue full, stop queues"); | 394 | wl1251_debug(DEBUG_TX, "op_tx: tx_queue full, stop queues"); |
396 | ieee80211_stop_queues(wl->hw); | ||
397 | 395 | ||
398 | /* | 396 | spin_lock_irqsave(&wl->wl_lock, flags); |
399 | * FIXME: this is racy, the variable is not properly | 397 | ieee80211_stop_queues(wl->hw); |
400 | * protected. Maybe fix this by removing the stupid | ||
401 | * variable altogether and checking the real queue state? | ||
402 | */ | ||
403 | wl->tx_queue_stopped = true; | 398 | wl->tx_queue_stopped = true; |
399 | spin_unlock_irqrestore(&wl->wl_lock, flags); | ||
404 | } | 400 | } |
405 | 401 | ||
406 | return NETDEV_TX_OK; | 402 | return NETDEV_TX_OK; |
@@ -469,9 +465,7 @@ static void wl1251_op_stop(struct ieee80211_hw *hw) | |||
469 | WARN_ON(wl->state != WL1251_STATE_ON); | 465 | WARN_ON(wl->state != WL1251_STATE_ON); |
470 | 466 | ||
471 | if (wl->scanning) { | 467 | if (wl->scanning) { |
472 | mutex_unlock(&wl->mutex); | ||
473 | ieee80211_scan_completed(wl->hw, true); | 468 | ieee80211_scan_completed(wl->hw, true); |
474 | mutex_lock(&wl->mutex); | ||
475 | wl->scanning = false; | 469 | wl->scanning = false; |
476 | } | 470 | } |
477 | 471 | ||
@@ -1437,5 +1431,5 @@ EXPORT_SYMBOL_GPL(wl1251_free_hw); | |||
1437 | 1431 | ||
1438 | MODULE_DESCRIPTION("TI wl1251 Wireles LAN Driver Core"); | 1432 | MODULE_DESCRIPTION("TI wl1251 Wireles LAN Driver Core"); |
1439 | MODULE_LICENSE("GPL"); | 1433 | MODULE_LICENSE("GPL"); |
1440 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); | 1434 | MODULE_AUTHOR("Kalle Valo <kvalo@adurom.com>"); |
1441 | MODULE_FIRMWARE(WL1251_FW_NAME); | 1435 | MODULE_FIRMWARE(WL1251_FW_NAME); |
diff --git a/drivers/net/wireless/wl12xx/wl1251_ps.c b/drivers/net/wireless/wl12xx/wl1251_ps.c index b55cb2bd459a..0b997bdfec09 100644 --- a/drivers/net/wireless/wl12xx/wl1251_ps.c +++ b/drivers/net/wireless/wl12xx/wl1251_ps.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2008 Nokia Corporation | 4 | * Copyright (C) 2008 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_ps.h b/drivers/net/wireless/wl12xx/wl1251_ps.h index c688ac57aee4..e5db81fc1dfc 100644 --- a/drivers/net/wireless/wl12xx/wl1251_ps.h +++ b/drivers/net/wireless/wl12xx/wl1251_ps.h | |||
@@ -1,14 +1,9 @@ | |||
1 | #ifndef __WL1251_PS_H__ | ||
2 | #define __WL1251_PS_H__ | ||
3 | |||
4 | /* | 1 | /* |
5 | * This file is part of wl1251 | 2 | * This file is part of wl1251 |
6 | * | 3 | * |
7 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
8 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
9 | * | 6 | * |
10 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
14 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
@@ -25,6 +20,9 @@ | |||
25 | * | 20 | * |
26 | */ | 21 | */ |
27 | 22 | ||
23 | #ifndef __WL1251_PS_H__ | ||
24 | #define __WL1251_PS_H__ | ||
25 | |||
28 | #include "wl1251.h" | 26 | #include "wl1251.h" |
29 | #include "wl1251_acx.h" | 27 | #include "wl1251_acx.h" |
30 | 28 | ||
diff --git a/drivers/net/wireless/wl12xx/wl1251_reg.h b/drivers/net/wireless/wl12xx/wl1251_reg.h index d16edd9bf06c..a5809019c5c1 100644 --- a/drivers/net/wireless/wl12xx/wl1251_reg.h +++ b/drivers/net/wireless/wl12xx/wl1251_reg.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_rx.c b/drivers/net/wireless/wl12xx/wl1251_rx.c index 1b6294b3b996..25764592a596 100644 --- a/drivers/net/wireless/wl12xx/wl1251_rx.c +++ b/drivers/net/wireless/wl12xx/wl1251_rx.c | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_rx.h b/drivers/net/wireless/wl12xx/wl1251_rx.h index da4e53406a0e..4448f635a4d8 100644 --- a/drivers/net/wireless/wl12xx/wl1251_rx.h +++ b/drivers/net/wireless/wl12xx/wl1251_rx.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_sdio.c b/drivers/net/wireless/wl12xx/wl1251_sdio.c index b901b6135654..c0b68b0a9aa8 100644 --- a/drivers/net/wireless/wl12xx/wl1251_sdio.c +++ b/drivers/net/wireless/wl12xx/wl1251_sdio.c | |||
@@ -339,4 +339,4 @@ module_init(wl1251_sdio_init); | |||
339 | module_exit(wl1251_sdio_exit); | 339 | module_exit(wl1251_sdio_exit); |
340 | 340 | ||
341 | MODULE_LICENSE("GPL"); | 341 | MODULE_LICENSE("GPL"); |
342 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); | 342 | MODULE_AUTHOR("Kalle Valo <kvalo@adurom.com>"); |
diff --git a/drivers/net/wireless/wl12xx/wl1251_spi.c b/drivers/net/wireless/wl12xx/wl1251_spi.c index 27fdfaaeb074..334ded9881c0 100644 --- a/drivers/net/wireless/wl12xx/wl1251_spi.c +++ b/drivers/net/wireless/wl12xx/wl1251_spi.c | |||
@@ -3,8 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 2008 Nokia Corporation | 4 | * Copyright (C) 2008 Nokia Corporation |
5 | * | 5 | * |
6 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
10 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
@@ -344,5 +342,5 @@ module_init(wl1251_spi_init); | |||
344 | module_exit(wl1251_spi_exit); | 342 | module_exit(wl1251_spi_exit); |
345 | 343 | ||
346 | MODULE_LICENSE("GPL"); | 344 | MODULE_LICENSE("GPL"); |
347 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); | 345 | MODULE_AUTHOR("Kalle Valo <kvalo@adurom.com>"); |
348 | MODULE_ALIAS("spi:wl1251"); | 346 | MODULE_ALIAS("spi:wl1251"); |
diff --git a/drivers/net/wireless/wl12xx/wl1251_spi.h b/drivers/net/wireless/wl12xx/wl1251_spi.h index 2e273a97e7f3..7dcf3cf7ae40 100644 --- a/drivers/net/wireless/wl12xx/wl1251_spi.h +++ b/drivers/net/wireless/wl12xx/wl1251_spi.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1251_tx.c b/drivers/net/wireless/wl12xx/wl1251_tx.c index 6634b3e27cfc..388492a7f41f 100644 --- a/drivers/net/wireless/wl12xx/wl1251_tx.c +++ b/drivers/net/wireless/wl12xx/wl1251_tx.c | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
@@ -322,11 +320,6 @@ void wl1251_tx_work(struct work_struct *work) | |||
322 | 320 | ||
323 | ret = wl1251_tx_frame(wl, skb); | 321 | ret = wl1251_tx_frame(wl, skb); |
324 | if (ret == -EBUSY) { | 322 | if (ret == -EBUSY) { |
325 | /* firmware buffer is full, stop queues */ | ||
326 | wl1251_debug(DEBUG_TX, "tx_work: fw buffer full, " | ||
327 | "stop queues"); | ||
328 | ieee80211_stop_queues(wl->hw); | ||
329 | wl->tx_queue_stopped = true; | ||
330 | skb_queue_head(&wl->tx_queue, skb); | 323 | skb_queue_head(&wl->tx_queue, skb); |
331 | goto out; | 324 | goto out; |
332 | } else if (ret < 0) { | 325 | } else if (ret < 0) { |
@@ -449,6 +442,7 @@ void wl1251_tx_complete(struct wl1251 *wl) | |||
449 | { | 442 | { |
450 | int i, result_index, num_complete = 0; | 443 | int i, result_index, num_complete = 0; |
451 | struct tx_result result[FW_TX_CMPLT_BLOCK_SIZE], *result_ptr; | 444 | struct tx_result result[FW_TX_CMPLT_BLOCK_SIZE], *result_ptr; |
445 | unsigned long flags; | ||
452 | 446 | ||
453 | if (unlikely(wl->state != WL1251_STATE_ON)) | 447 | if (unlikely(wl->state != WL1251_STATE_ON)) |
454 | return; | 448 | return; |
@@ -477,6 +471,20 @@ void wl1251_tx_complete(struct wl1251 *wl) | |||
477 | } | 471 | } |
478 | } | 472 | } |
479 | 473 | ||
474 | if (wl->tx_queue_stopped | ||
475 | && | ||
476 | skb_queue_len(&wl->tx_queue) <= WL1251_TX_QUEUE_LOW_WATERMARK){ | ||
477 | |||
478 | /* firmware buffer has space, restart queues */ | ||
479 | wl1251_debug(DEBUG_TX, "tx_complete: waking queues"); | ||
480 | spin_lock_irqsave(&wl->wl_lock, flags); | ||
481 | ieee80211_wake_queues(wl->hw); | ||
482 | wl->tx_queue_stopped = false; | ||
483 | spin_unlock_irqrestore(&wl->wl_lock, flags); | ||
484 | ieee80211_queue_work(wl->hw, &wl->tx_work); | ||
485 | |||
486 | } | ||
487 | |||
480 | /* Every completed frame needs to be acknowledged */ | 488 | /* Every completed frame needs to be acknowledged */ |
481 | if (num_complete) { | 489 | if (num_complete) { |
482 | /* | 490 | /* |
diff --git a/drivers/net/wireless/wl12xx/wl1251_tx.h b/drivers/net/wireless/wl12xx/wl1251_tx.h index f40eeb37f5aa..96011e78cd5a 100644 --- a/drivers/net/wireless/wl12xx/wl1251_tx.h +++ b/drivers/net/wireless/wl12xx/wl1251_tx.h | |||
@@ -4,8 +4,6 @@ | |||
4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated | 4 | * Copyright (c) 1998-2007 Texas Instruments Incorporated |
5 | * Copyright (C) 2008 Nokia Corporation | 5 | * Copyright (C) 2008 Nokia Corporation |
6 | * | 6 | * |
7 | * Contact: Kalle Valo <kalle.valo@nokia.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
10 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
11 | * version 2 as published by the Free Software Foundation. | 9 | * version 2 as published by the Free Software Foundation. |
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c index 30194c0f36a9..8e55cf8d509d 100644 --- a/drivers/net/wireless/wl12xx/wl1271_main.c +++ b/drivers/net/wireless/wl12xx/wl1271_main.c | |||
@@ -948,9 +948,7 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw, | |||
948 | ieee80211_enable_dyn_ps(wl->vif); | 948 | ieee80211_enable_dyn_ps(wl->vif); |
949 | 949 | ||
950 | if (wl->scan.state != WL1271_SCAN_STATE_IDLE) { | 950 | if (wl->scan.state != WL1271_SCAN_STATE_IDLE) { |
951 | mutex_unlock(&wl->mutex); | ||
952 | ieee80211_scan_completed(wl->hw, true); | 951 | ieee80211_scan_completed(wl->hw, true); |
953 | mutex_lock(&wl->mutex); | ||
954 | wl->scan.state = WL1271_SCAN_STATE_IDLE; | 952 | wl->scan.state = WL1271_SCAN_STATE_IDLE; |
955 | kfree(wl->scan.scanned_ch); | 953 | kfree(wl->scan.scanned_ch); |
956 | wl->scan.scanned_ch = NULL; | 954 | wl->scan.scanned_ch = NULL; |
diff --git a/drivers/net/wireless/wl12xx/wl1271_scan.c b/drivers/net/wireless/wl12xx/wl1271_scan.c index 30dc1000f563..e4950c8e396e 100644 --- a/drivers/net/wireless/wl12xx/wl1271_scan.c +++ b/drivers/net/wireless/wl12xx/wl1271_scan.c | |||
@@ -215,9 +215,7 @@ void wl1271_scan_stm(struct wl1271 *wl) | |||
215 | break; | 215 | break; |
216 | 216 | ||
217 | case WL1271_SCAN_STATE_DONE: | 217 | case WL1271_SCAN_STATE_DONE: |
218 | mutex_unlock(&wl->mutex); | ||
219 | ieee80211_scan_completed(wl->hw, false); | 218 | ieee80211_scan_completed(wl->hw, false); |
220 | mutex_lock(&wl->mutex); | ||
221 | 219 | ||
222 | kfree(wl->scan.scanned_ch); | 220 | kfree(wl->scan.scanned_ch); |
223 | wl->scan.scanned_ch = NULL; | 221 | wl->scan.scanned_ch = NULL; |