aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/main.c
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2009-06-12 07:15:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-07-10 14:57:46 -0400
commit9f2ad4fb52916e58a1b75e9a30f42638655932d3 (patch)
tree1268dbcefde1165b1569333b0dc9fd26c6a2b911 /drivers/net/wireless/wl12xx/main.c
parent9f483dc3d1b0b1695c8177c1dea2e721954b10fb (diff)
wl12xx: Moved wl1251 TX path implementation into chip specific files
Moved wl1251 TX path implementation into chip specific files to enable parallel implementation for the wl1271 TX path. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/main.c')
-rw-r--r--drivers/net/wireless/wl12xx/main.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 73232db2b466..8feba36ff48d 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -37,7 +37,7 @@
37#include "wl1251.h" 37#include "wl1251.h"
38#include "spi.h" 38#include "spi.h"
39#include "event.h" 39#include "event.h"
40#include "tx.h" 40#include "wl1251_tx.h"
41#include "rx.h" 41#include "rx.h"
42#include "ps.h" 42#include "ps.h"
43#include "init.h" 43#include "init.h"
@@ -303,6 +303,11 @@ static int wl12xx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
303 303
304 skb_queue_tail(&wl->tx_queue, skb); 304 skb_queue_tail(&wl->tx_queue, skb);
305 305
306 /*
307 * The chip specific setup must run before the first TX packet -
308 * before that, the tx_work will not be initialized!
309 */
310
306 schedule_work(&wl->tx_work); 311 schedule_work(&wl->tx_work);
307 312
308 /* 313 /*
@@ -400,8 +405,7 @@ static void wl12xx_op_stop(struct ieee80211_hw *hw)
400 mutex_lock(&wl->mutex); 405 mutex_lock(&wl->mutex);
401 406
402 /* let's notify MAC80211 about the remaining pending TX frames */ 407 /* let's notify MAC80211 about the remaining pending TX frames */
403 wl12xx_tx_flush(wl); 408 wl->chip.op_tx_flush(wl);
404
405 wl12xx_power_off(wl); 409 wl12xx_power_off(wl);
406 410
407 memset(wl->bssid, 0, ETH_ALEN); 411 memset(wl->bssid, 0, ETH_ALEN);
@@ -1176,7 +1180,7 @@ static int wl12xx_init_ieee80211(struct wl12xx *wl)
1176{ 1180{
1177 /* The tx descriptor buffer and the TKIP space */ 1181 /* The tx descriptor buffer and the TKIP space */
1178 wl->hw->extra_tx_headroom = sizeof(struct tx_double_buffer_desc) 1182 wl->hw->extra_tx_headroom = sizeof(struct tx_double_buffer_desc)
1179 + WL12XX_TKIP_IV_SPACE; 1183 + WL1251_TKIP_IV_SPACE;
1180 1184
1181 /* unit us */ 1185 /* unit us */
1182 /* FIXME: find a proper value */ 1186 /* FIXME: find a proper value */
@@ -1226,7 +1230,6 @@ static int __devinit wl12xx_probe(struct spi_device *spi)
1226 1230
1227 skb_queue_head_init(&wl->tx_queue); 1231 skb_queue_head_init(&wl->tx_queue);
1228 1232
1229 INIT_WORK(&wl->tx_work, wl12xx_tx_work);
1230 INIT_WORK(&wl->filter_work, wl12xx_filter_work); 1233 INIT_WORK(&wl->filter_work, wl12xx_filter_work);
1231 wl->channel = WL12XX_DEFAULT_CHANNEL; 1234 wl->channel = WL12XX_DEFAULT_CHANNEL;
1232 wl->scanning = false; 1235 wl->scanning = false;