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 17struct wfx_dev; 18struct wfx_vif; 19 20struct 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 35int wfx_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 36 struct ieee80211_scan_request *req); 37void wfx_scan_work(struct work_struct *work); 38void wfx_scan_timeout(struct work_struct *work); 39void wfx_scan_complete_cb(struct wfx_vif *wvif, struct hif_ind_scan_cmpl *arg); 40void wfx_scan_failed_cb(struct wfx_vif *wvif); 41 42#endif /* WFX_SCAN_H */ 43