Commit | Line | Data |
---|---|---|
a910e4a9 SP |
1 | /* |
2 | * Scan interface for ST-Ericsson CW1200 mac80211 drivers | |
3 | * | |
4 | * Copyright (c) 2010, ST-Ericsson | |
5 | * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no> | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or modify | |
8 | * it under the terms of the GNU General Public License version 2 as | |
9 | * published by the Free Software Foundation. | |
10 | */ | |
11 | ||
12 | #ifndef SCAN_H_INCLUDED | |
13 | #define SCAN_H_INCLUDED | |
14 | ||
15 | #include <linux/semaphore.h> | |
16 | #include "wsm.h" | |
17 | ||
18 | /* external */ struct sk_buff; | |
19 | /* external */ struct cfg80211_scan_request; | |
20 | /* external */ struct ieee80211_channel; | |
21 | /* external */ struct ieee80211_hw; | |
22 | /* external */ struct work_struct; | |
23 | ||
24 | struct cw1200_scan { | |
25 | struct semaphore lock; | |
26 | struct work_struct work; | |
27 | struct delayed_work timeout; | |
28 | struct cfg80211_scan_request *req; | |
29 | struct ieee80211_channel **begin; | |
30 | struct ieee80211_channel **curr; | |
31 | struct ieee80211_channel **end; | |
32 | struct wsm_ssid ssids[WSM_SCAN_MAX_NUM_OF_SSIDS]; | |
33 | int output_power; | |
34 | int n_ssids; | |
35 | int status; | |
36 | atomic_t in_progress; | |
37 | /* Direct probe requests workaround */ | |
38 | struct delayed_work probe_work; | |
39 | int direct_probe; | |
40 | }; | |
41 | ||
42 | int cw1200_hw_scan(struct ieee80211_hw *hw, | |
43 | struct ieee80211_vif *vif, | |
44 | struct cfg80211_scan_request *req); | |
45 | void cw1200_scan_work(struct work_struct *work); | |
46 | void cw1200_scan_timeout(struct work_struct *work); | |
47 | void cw1200_clear_recent_scan_work(struct work_struct *work); | |
48 | void cw1200_scan_complete_cb(struct cw1200_common *priv, | |
49 | struct wsm_scan_complete *arg); | |
50 | void cw1200_scan_failed_cb(struct cw1200_common *priv); | |
51 | ||
52 | /* ******************************************************************** */ | |
53 | /* Raw probe requests TX workaround */ | |
54 | void cw1200_probe_work(struct work_struct *work); | |
55 | ||
56 | #endif |