Merge tag 'tty-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[linux-2.6-microblaze.git] / drivers / staging / wfx / scan.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Scan related functions.
4  *
5  * Copyright (c) 2017-2019, Silicon Laboratories, Inc.
6  * Copyright (c) 2010, ST-Ericsson
7  */
8 #ifndef WFX_SCAN_H
9 #define WFX_SCAN_H
10
11 #include <linux/semaphore.h>
12 #include <linux/workqueue.h>
13 #include <net/mac80211.h>
14
15 #include "hif_api_cmd.h"
16
17 struct wfx_dev;
18 struct wfx_vif;
19
20 struct wfx_scan {
21         struct semaphore lock;
22         struct work_struct work;
23         struct delayed_work timeout;
24         struct cfg80211_scan_request *req;
25         struct ieee80211_channel **begin;
26         struct ieee80211_channel **curr;
27         struct ieee80211_channel **end;
28         struct hif_ssid_def ssids[HIF_API_MAX_NB_SSIDS];
29         int output_power;
30         int n_ssids;
31         int status;
32         atomic_t in_progress;
33 };
34
35 int wfx_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
36                 struct ieee80211_scan_request *req);
37 void wfx_scan_work(struct work_struct *work);
38 void wfx_scan_timeout(struct work_struct *work);
39 void wfx_scan_complete_cb(struct wfx_vif *wvif, struct hif_ind_scan_cmpl *arg);
40 void wfx_scan_failed_cb(struct wfx_vif *wvif);
41
42 #endif /* WFX_SCAN_H */