| /* | |
| * Scan interface for ST-Ericsson CW1200 mac80211 drivers | |
| * | |
| * Copyright (c) 2010, ST-Ericsson | |
| * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no> | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License version 2 as | |
| * published by the Free Software Foundation. | |
| */ | |
| #ifndef SCAN_H_INCLUDED | |
| #define SCAN_H_INCLUDED | |
| #include <linux/semaphore.h> | |
| #include "wsm.h" | |
| /* external */ struct sk_buff; | |
| /* external */ struct cfg80211_scan_request; | |
| /* external */ struct ieee80211_channel; | |
| /* external */ struct ieee80211_hw; | |
| /* external */ struct work_struct; | |
| struct cw1200_scan { | |
| struct semaphore lock; | |
| struct work_struct work; | |
| struct delayed_work timeout; | |
| struct cfg80211_scan_request *req; | |
| struct ieee80211_channel **begin; | |
| struct ieee80211_channel **curr; | |
| struct ieee80211_channel **end; | |
| struct wsm_ssid ssids[WSM_SCAN_MAX_NUM_OF_SSIDS]; | |
| int output_power; | |
| int n_ssids; | |
| int status; | |
| atomic_t in_progress; | |
| /* Direct probe requests workaround */ | |
| struct delayed_work probe_work; | |
| int direct_probe; | |
| }; | |
| int cw1200_hw_scan(struct ieee80211_hw *hw, | |
| struct ieee80211_vif *vif, | |
| struct ieee80211_scan_request *hw_req); | |
| void cw1200_scan_work(struct work_struct *work); | |
| void cw1200_scan_timeout(struct work_struct *work); | |
| void cw1200_clear_recent_scan_work(struct work_struct *work); | |
| void cw1200_scan_complete_cb(struct cw1200_common *priv, | |
| struct wsm_scan_complete *arg); | |
| void cw1200_scan_failed_cb(struct cw1200_common *priv); | |
| /* ******************************************************************** */ | |
| /* Raw probe requests TX workaround */ | |
| void cw1200_probe_work(struct work_struct *work); | |
| #endif |